如何将控制器操作的json输出传递给其视图? 正如我之前尝试发送的那样,我的代码是:
public ActionResult Index()
{
Guid Id = new Guid("66083eec-7965-4f3b-adcf-218febbbceb3");
List<TasksToOfficer> officersTasks = tasks_to_officer_management.GetTasksToOfficers(Id);
return Json(officersTasks)
}
它要求JsonRequestBehavior.AllowJson
之类的参数。我知道它是asp.net mvc 2中的新功能,但作为重定向查看有没有发生但要求下载json输出文件。我想在我的jQuery中使用返回的数据。但那里出了问题。如果我删除了参数,那么它显示错误:
此请求已被阻止,因为当在GET请求中使用敏感信息时,可能会向第三方网站公开敏感信息。要允许GET请求,请将JsonRequestBehavior设置为AllowGet。
如何避免这种情况并在视图中获取json数据?
答案 0 :(得分:6)
以下是您要尝试的示例。首先在您的视图中调用$.getJSON从操作中获取JSON数据:
$.getJSON('/Data/StockQuote', function(data) {
if (data.success) {
ShowStockQuote(data);
}
});
然后你的行动将如下所示:
public JsonResult GetStockQuote()
{
JsonResult result = new JsonResult()
{
Data = new {
lastTradePrice = 50,
lastUpdated = "10/1/2010",
expirationDate = "10/2/2010",
success = true
},
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
return result;
}
从您的操作返回JSON数据到$.getJSON后,您可以使用数据访问JSON对象的所有值。所以data.success会给你带来成功等等。