use*_*552 -1 javascript c# asp.net-mvc serialization json
我有以下方法:
[HttpPost]
public ActionResult GetData()
{
var data= (dynamic)null;
using (DBContext context = new DBContext())
{
data= context.MyObject.Where(i=> i.TypeId == 1).OrderBy(k => k.Name).Select(w => new
{
description = w.Description
}).ToList();
}
return Json(data, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
所以我想将数据正确转换为json对象,但我不确定我是否正确.返回的数据应该在javascript中使用.
我有很多谷歌,我找到了如下的例子,也许我应该做类似的事情,但我不知道如何:
var keyValues = new Dictionary<string, string>
{
{ "emailSend", textBox1.Text },
{ "toEmail", textBox2.Text }
};
JavaScriptSerializer js = new JavaScriptSerializer();
string json = js.Serialize(keyValues);
MessageBox.Show(json);
Run Code Online (Sandbox Code Playgroud)
你不应该使用任何JavaScriptSerializer.就像Json你已经做的那样回归.这是从控制器操作向客户端发送JSON的正确方法.作为参数传递的模型将由框架自动序列化为JSON字符串.此外,您不需要进行设置,JsonRequestBehavior.AllowGet因为您的控制器操作使用[HttpPost]属性进行修饰,这意味着它只能使用POST动词调用,而不能使用GET调用.这仅对返回JsonResult的控制器操作是必需的,并且可以使用GET动词调用.