asp.net mvc 后台怎么接受前端返回的array list dictionary
参考了别人的文章,我这样尝试去写:
数据源:memberInRoles
var memberInRoles= {};
for(var i=0;i<sureOptions.length;i++){
memberInRoles["memberInRoles["+i+"].UserId"]=sureOptions[i].value;
memberInRoles["memberInRoles["+i+"].RoleId"]="@Model.RoleId";
}
Controller Action
[HttpPost]
public JsonResult UserSelectSave(List<MemberInRole> memberInRoles)
{
return Json(new { data = 0, msg = "" });
}
尝试使用$.ajax
$.ajax({
type: "POST",
dataType: "json",
url: "@Url.Action("UserSelectSave", "RoleManager", new { area = "DeskTop" })",
data: { memberInRoles:memberInRoles },
beforeSend: function () { },
complete: function () { },
success: function (data) {
// format error
if(!data||(!data.status&&data.status!=0)){
alertBox(boxcallback, "0", "提示", "系统参数错误!");
return false;
}
// success
if (data.status == "0") {
} else {
alertBox(boxcallback, "0", "提示", data.msg);
return false;
}
},
error: function (data) {
alertBox(boxcallback, "0", "提示", "系统异常,请稍后重试");
return false;
}
});
结果发现接收到的参数为null,继续修改:
$.ajax({
type: "POST",
dataType: "json",
url: "@Url.Action("UserSelectSave", "RoleManager", new { area = "DeskTop" })",
data: { memberInRoles},
beforeSend: function () { },
complete: function () { },
success: function (data) {
// format error
if(!data||(!data.status&&data.status!=0)){
alertBox(boxcallback, "0", "提示", "系统参数错误!");
return false;
}
// success
if (data.status == "0") {
} else {
alertBox(boxcallback, "0", "提示", data.msg);
return false;
}
},
error: function (data) {
alertBox(boxcallback, "0", "提示", "系统异常,请稍后重试");
return false;
}
});
结果直接报黄页,刷洗的地址是提交之前的地址,而且把我的参数名称前都加了一个hd字符。
对于“DXWorkFlow.Web.Areas.Desktop.Controllers.RoleManagerController”中方法“System.Web.Mvc.ActionResult
UserManager(Int32, Int32, System.String, System.String)”的不可以为 null
的类型“System.Int32”的参数“parentId”,参数字典包含一个 null 项。可选参数必须为引用类型、可以为 null
的类型或声明为可选参数。
Parameter name: parameters
看别人提交时貌似都是采用$.post方式提交的。
结果使用$.post确可行,实在不明白什么原因。
$.post("@Url.Action("UserSelectSave", "RoleManager", new { area = "DeskTop" })",
memberInRoles,
function(data){
// format error
if(!data||(!data.status&&data.status!=)){
alertBox(boxcallback, "", "提示", "系统参数错误!");
return false;
}
// success
if (data.status == "") {
} else {
alertBox(boxcallback, "", "提示", data.msg);
return false;
}
}
);
实在想不明白$.ajax与$.post方式有什么区别。
如果哪位知道$.ajax与$.post区别具体信息,请赐教。
参考文章:
http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx/
http://www.hanselman.com/blog/ASPNETWireFormatForModelBindingToArraysListsCollectionsDictionaries.aspx
http://www.cnblogs.com/birdwudi/archive/2010/08/26/1809511.html
asp.net mvc 后台怎么接受前端返回的array list dictionary的更多相关文章
- ASP.NET MVC 后台接收集合参数和 jquery ajax 传值
MVC 接收参数数组(集合) 示例样本: public class Person { public string FirstName { get; set; } publi ...
- 序列化json对象,通过ajax传入asp.net mvc后台
序列化json对象,通过ajax传入asp.net mvc后台 序列化json对象,通过ajax传入asp.net mvc后台 今天遇到一个问题,准备把组织好的json对象通过jquery.aja ...
- asp.net mvc 使用Ajax调用Action 返回数据【转】
使用asp.net mvc 调用Action方法很简单. 一.无参数方法. 1.首先,引入jquery-1.5.1.min.js 脚本,根据版本不同大家自行选择. <script src=& ...
- asp.net mvc后台操作之读写xml控制首页动态页面开关显示
一.背景 在asp.net mvc项目里,用户需要开拓几个活动版面,并以侧栏的方式呈现在首页右侧,几个活动时间不一致,为避免浏览者在活动未开放之时进入未开放的服务页面.因此不仅需要在活动代码中加入限制 ...
- 在asp.net mvc模式中使用PartialView返回部分HTML
PartialView(返回HTML(局部)) 在asp.net mvc中返回View时使用的是ViewResult,它继承自ViewResultBase 同时它还有个兄弟PartialViewRes ...
- Asp.Net Mvc - 在OnResultExecut* 拦截Action返回的HTML
在Asp.Net MVC项目中通过重写ActionFilterAttribute中的方法,我们就可以在轻松的在Action方法执行前后做一些特殊的操作如:[身份认证.日志记录.内容截取等]. 但是我们 ...
- Asp.Net Mvc后台数据验证自测小Demo
使用过MVC的同学一定不陌生MVC的模型绑定和模型校验,使用起来非常方便,定义好Entity之后,在需要进行校验的地方可以打上相应的Attribute,在Action开始时检查ModelState的I ...
- 彻底解决ASP.NET MVC 3 404错误码返回302的问题
转自:http://blog.csdn.net/mycloudke/article/details/9746333 404状态码:,意味着当在页面上显示用户点击不存在,提高用户体验度,搜索引擎会放弃这 ...
- ASP.NET MVC如何在Action中返回脚本并执行
我们都知道在aspx页面的cs文件中只要用Respos.Write("<script></scritp>")就可以在前台执行脚本 但是在MVC中就不一样了, ...
随机推荐
- Yii源码阅读笔记(十一)
controller类的render部分,用于渲染视图和布局文件: /** * Returns all ancestor modules of this controller. * 获取当前控制器所有 ...
- DirectX基础学习系列8 渐进网格以及外接体
1 IUnknown--> ID3DXBUFFER D3D泛型接口: GetBufferPointer Retrieves a pointer to the data in the buffer ...
- JLINK SWD下载模式引脚
SWD接4个脚就可以 RESET可以不用接
- js获取各种宽高方法
屏幕的有效宽高: window.screen.availHeightwindow.screen.availWidth 网页可见区域宽:document.body.clientWidth 网页可见区域高 ...
- 基于LR的Oracle应用性能测试
最近对一个oracle ERP系统的INV模块进行性能测试,因为之前大部分都是测试web类型的应用,在这方面经验较少,期间也遇到了不少问题,因此有必要作些总结,以备后忘.首先先简单了解下测试对象相关的 ...
- cookie 操作
//创建并赋值 重新赋值也是这样操作 document.cookie="userId=828"; document.cookie="userName=hulk" ...
- Windows注册表(持续更新)
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Zoom 下, 设置DWORD 值 ZoomDisabled 等于 1.
- perl常用代码
字符串联结和重复操作符 联接: . 重复:x 联接且赋值(类似+=): .=例: $newstring = "potato" . "head"; $ ...
- java 开发, jdk 1.6 官方下载地址
在oracle官方网站默认下载的jdk是最新的,目前正式版是1.8. 但有些项目要求是1.6的jdk,费了九牛二虎之力终于找到了1.6的官方版本,链接如下: http://www.oracle.com ...
- 面向对象之struct
struct PointStruct { int pointx = 1; int pointy = 2; public PointStruct(int x, int y) { this.pointx ...