如何将json输出发送到asp.net mvc中查看

时间:2010-10-20 14:56:36

标签: asp.net-mvc json

如何将控制器操作的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数据?

1 个答案:

答案 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会给你带来成功等等。