活页夹未拾取表单编码的JavaScript int []
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了活页夹未拾取表单编码的JavaScript int [],小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1961字,纯文字阅读大概需要3分钟。
内容图文
![活页夹未拾取表单编码的JavaScript int []](/upload/InfoBanner/zyjiaocheng/675/1e788b1f45554ea19e6311ebce9741c8.jpg)
昨晚,我试图整理自MVC2以来我一直在工作的东西.
给定以下类别:
public class RouteSaveViewModel
{
public string Title { get; set; }
public string Comments { get; set; }
public string DepartureDate { get; set; }
public string ArrivalDate { get; set; }
public List<int> LocationIds { get; set; }
}
…以及以下操作:
[HttpPost]
public ViewResult SaveRoute(RouteSaveViewModel route)
{
// yada yada
return SomethingShiny();
}
我想使用$.ajax或$.post传递数据.该表单是多步操作,可从用户那里收集数据并提交.我用来建立位置编号的代码是这样的:
var routeStopIds = [];
$(".route-stop").each(function(){
routeStopIds.push($(this).attr('data-id'));
});
我已经通过浏览器中的开发工具和提琴手验证了我期望的id在此数组中.最后,要提交数据,我将映射对象,就像在以前的MVC构建中所做的那样:
$.ajax({
type: 'post',
url: postUrl,
data: {
Title: $("#route-title").val(),
Comments: $("#route-description").val(),
DepartureDate: depDate,
ArrivalDate: arrDate,
LocationIds: routeStopIds
},
dataType: 'JSON'
});
我看到的是,除了LocationIds参数外,所有数据都已填充.我还尝试仅将routeStopIds数组提交到仅接受List< int>而且似乎也不起作用.无论哪种方式,LocationIds都为null,尽管请求的表单参数中存在表单编码的值.
{LocationIds%5b%5d=44&LocationIds%5b%5d=4&LocationIds%5b%5d=2}
…但是HttpValueCollection只是LocationIds [],一个空数组.
那么,我是否缺少明显的东西?也许不是那么明显?如何获得模型绑定要拾取的数组?
解决方法:
还记得我说过从MVC2开始就可以使用的那部分吗?是的,那是在这里:
Advanced Model Binding在那篇文章中,我明确提到了以下内容:
Note: In order to make the results of the array compatible with the
binding mechanism in ASP.NET MVC (as at MVC 2.0) we need to use the
‘traditional’ setting in $.ajax().
修改了ajax调用以包括此设置.就像雨和柔软的羊毛小猫一样.或连指手套或其他东西.
$.ajax({
type: 'post',
url: postUrl,
traditional: true, // <----- here be kittens
data: {
Title: $("#route-title").val(),
Comments: $("#route-description").val(),
DepartureDate: depDate,
ArrivalDate: arrDate,
LocationIds: routeStopIds
},
dataType: 'JSON'
});
内容总结
以上是互联网集市为您收集整理的活页夹未拾取表单编码的JavaScript int []全部内容,希望文章能够帮你解决活页夹未拾取表单编码的JavaScript int []所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。