我有以下JQuery代码;
var selectedval = $("#PaymentApplication_System").val();
var text = $("#btnSave").val();
var payVal = $("#PaymentApplication_Amount").val();
var dbobj = [{ param: text, value: payVal}];
var jlist = $.toJSON(dbobj);
给了我以下json对象;
[{"param":"Update Payment","value":"50.00"}]
我正在使用MVC 2.如何从控制器中的对象中读取值???
答案 0 :(得分:2)
MVC 2不会自动将您的JSON字符串转换为C#对象。您可以使用位于System.Web.Script.Serialization中的JavaScriptSerializer。例如:
public ActionResult Index(string customerJson)
{
var serializer = new JavaScriptSerializer();
var customer = serializer.Deserialize<Customer>(customerJson);
return View(customer);
}
这可以作为扩展元文件做得很好(或者如果你有的话,可以把它放在基本控制器中):
public static class ControllerExtensions
{
public T JsonDeserialize<T>(this Controller instance, string json)
{
var serializer = new JavaScriptSerializer();
return serializer.Deserialize<T>(json);
}
}
然后您可以将其用作:
public ActionResult Index(string customerJson)
{
var customer = this.JsonDeserialize<Customer>(customerJson);
return View(customer);
}
答案 1 :(得分:1)
我认为这篇文章可以帮助解决类似问题:
答案 2 :(得分:0)
MVC 2在MVC 3的情况下不会将JSON对象转换为模型。
您必须使用JSON.net。