Kyl*_*yle 3 c# forms asp.net-mvc
我正在使用jquery通过ajax发布数据,而在chrome工具中,它显示的数据是这样发送的:
PermssionArray[0][Permitted]:false
PermssionArray[0][Id]:2
PermssionArray[1][Permitted]:true
PermssionArray[1][Id]:3
PermssionArray[2][Permitted]:true
PermssionArray[2][Id]:4
Run Code Online (Sandbox Code Playgroud)
我的控制器是这样的:
public ActionResult UpdatePermissions(PermSet[] PermssionArray)
Run Code Online (Sandbox Code Playgroud)
而我的PermSet类是这样的:
public class PermSet
{
public int Id { get; set; }
public bool Permitted { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如果我在控制器中断点,那么PermssionArray数组中有3个项,但值都是id = 0,allowed = false.
我需要更改什么来解决这个问题?
ASP.Net MVC中的列表非常奇怪,您可以选择将数据传输到服务器.
在ASP.NET MVC中使用默认模型绑定.这需要您更改模型以使用特定格式进行回发.查看Phil Haack的帖子.如果您有很多列表,这可能会变得多毛. http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx
第二个选项是使用jQuery绕过你的帖子并将你的表单序列化为一个JSON文档,然后将其POST到服务器.选项2更容易,但要求您处理ajax请求而不是直接POST/Redirect操作.
我假设您知道如何使用jQuery和$ .ajax方法.
当页面的复杂性开始变大时,我开始更倾向于选项二.唯一的缺点是你需要一个非常好的客户故事.考虑使用knockout.js,因为它让你使用ko.toJSON将表单转换为JSON.
如果您希望我详细介绍任何内容,请与我们联系.
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |