asp.net-mvc – 将javascript对象作为字典传输到控制器操作中
发布时间:2020-05-23 21:24:18 所属栏目:asp.Net 来源:互联网
导读:有没有办法传递这个JavaScript对象 Object { 35=true, 179=true, 181=true} 进入控制器动作 Dictionaryint, bool 我检查了以下方法: var remoteUrl = @Url.Action(UpdateProjectStructureSelection) + ?tlpId=@Model.TopLevelProjectId
|
有没有办法传递这个JavaScript对象 Object { 35=true,179=true,181=true}
进入控制器动作 Dictionary<int,bool> 我检查了以下方法: var remoteUrl = "@Url.Action("UpdateProjectStructureSelection")" + "?tlpId=@Model.TopLevelProjectId";
$.post(remoteUrl,mapSiteSelectionChoices,function(callbackResult) {
alert(callbackResult);
});
和 var remoteUrl = "@Url.Action("UpdateProjectStructureSelection")" + "?tlpId=@Model.TopLevelProjectId";
$.post(remoteUrl,{ values : mapSiteSelectionChoices },function(callbackResult) {
alert(callbackResult);
});
但是在这两种情况下 public ActionResult UpdateProjectStructureSelection(int tlpId,Dictionary<int,bool> values) 被称为,但价值观是空的. 因为我已经将更复杂的类型转换为控制器动作而没有编写自定义模型绑定器,所以我一直在想我是否只是在这里做错了. 自定义模型绑定器是将它作为字典的唯一方法吗? (除了在客户端使用JsonConvert stringify之外) 加法(这有效,但我喜欢避免额外的代码): public ActionResult UpdateProjectStructureSelection(int tlpId,string values)
{
var dict = JsonConvert.DeserializeObject<Dictionary<int,bool>>(values);
}
解决方法不是该格式的对象.它需要采用以下格式才能由DefaultModelBinder使用var data = { 'dict[0].key': '35','dict[0].value': 'True','dict[1].key': '179','values[1].value': 'True',dict[0].key': '8','dict[0].value': 'True' };
$.post(remoteUrl,data,function(callbackResult) {
和控制器 public ActionResult UpdateProjectStructureSelection(Dictionary<int,bool> dict) 如您所述,另一种选择是使用自定义ModelBinder,例如this answer (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 何时覆盖OnError?
- asp.net-mvc-3 – 剃刀视图引擎,如何在html之间写入?
- asp.net-mvc – ASP.net MVC3 – 使用Ajax回发的Razor View
- entity-framework – ASP.NET MVC 2.0在jqgrid中执行搜索
- asp.net-mvc – 字段必须是数字 如何将此消息更改为其他语言
- asp.net-mvc – MVC 3 Webgrid – 你如何隐藏不想显示的列?
- ASP.Net – App_DataApp_Code文件夹?
- 将列表绑定到asp.net 3.5中的列表视图
- asp.net-mvc – Asp.net Mvc:Ninject – IPrincipal
- asp.net-mvc-3 – 在使用Unity容器时为此对象异常定义的无参
推荐文章
站长推荐
热点阅读
