相关疑难解决方法(0)

如何使用json将复杂类型传递给ASP.NET MVC控制器

我有一个允许用户输入/编辑新Widget数据的视图.我想将这些数据组成一个json对象并通过AJAX将它发送给我的控制器,这样我就可以在没有回发的情况下在服务器上进行验证.

我已经完成了所有工作,除了我无法弄清楚如何传递数据,所以我的控制器方法可以接受复杂的Widget类型而不是每个属性的单独参数.

所以,如果这是我的对象:

public class Widget
{
   public int Id { get; set; }
   public string Name { get; set; }
   public decimal Price { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我希望我的控制器方法看起来像这样:

public JsonResult Save(Widget widget)
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

目前,我的jQuery看起来像这样:

var formData = $("#Form1").serializeArray();

$.post("/Widget/Save",
   formData,
   function(result){}, "json");
Run Code Online (Sandbox Code Playgroud)

我的表单(Form1)为Widget(Id,Name,Price)上的每个属性都有一个输入字段.这很好用,但它最终将Widget的每个属性作为单独的参数传递给我的控制器方法.

有没有一种方法可以"拦截"数据,可能使用ActionFilterAttribute,并在调用控制器方法之前将其反序列化为Widget对象?

asp.net asp.net-mvc jquery json

32
推荐指数
2
解决办法
2万
查看次数

使用嵌套Javascript对象的变量

假设我有这个:

var a = { A : { AA : 1 }, B : 2 };
Run Code Online (Sandbox Code Playgroud)

有没有办法让我创建一个可以让我引用AA或B的变量?语法是什么样的?

// I know I can do this:    
a['B']; // 2
a['A']['AA']; // 1

// something like this?
var myRef = ???;
a[myRef]; 1 or 2 depending on myRef
Run Code Online (Sandbox Code Playgroud)

如果没有,有什么更好的方式来获得我想要的东西?

javascript

13
推荐指数
2
解决办法
1万
查看次数

标签 统计

asp.net ×1

asp.net-mvc ×1

javascript ×1

jquery ×1

json ×1