gpt4 book ai didi

asp.net-mvc - ASP.NET MVC : View sometimes returned as application/json instead of text/html

转载 作者:行者123 更新时间:2023-12-03 20:11:47 25 4
gpt4 key购买 nike

我有一个 View ,我从中调用另一个 View 以在我的 html 中的脚本标记内呈现一些 json:

public ActionResult App()
{
return View();
}

public JsonResult SomeJsonData()
{
// ... here goes the code that generates the model
return Json(model, JsonRequestBehavior.AllowGet);
}

在我的 App.cshtml 文件中,我有这样的东西:
<script type='text/javascript'>
var myJsonData = @Html.Action("SomeJsonData", "MyController");
</script>

问题是,有时当我在浏览器中重新加载页面(现在使用 Chrome 20)时,它会显示所有标记,如果我转到开发人员工具中的“网络”选项卡,我可以看到页面请求的 Content-Type是“应用程序/json”类型。如果我只是重新加载页面,那么它会正确加载(内容类型应该是“text/html”)。

关于为什么会发生这种情况的任何想法?或者我做错了什么?

最佳答案

当您返回 JsonResult 时您正在将响应 Content-Type 修改为 application/json .所以你首先调用 App Controller 操作返回一个 View ,显然将内容类型设置为 text/html在返回的 View 中,您调用 SomeJsonData对先前的内容类型进行废话并将其修改为 application/json 的操作.当然最后一个获胜,这就是用户代理在一天结束时看到的:application/json .

所以,这里是如何继续:

public ActionResult App()
{
// ... here goes the code that generates the model
var model = ...

return View(model);
}

并在您的强类型 View 中:
@model MyViewModel
<script type="text/javascript">
var myJsonData = @Html.Raw(Json.Encode(Model));
</script>

关于asp.net-mvc - ASP.NET MVC : View sometimes returned as application/json instead of text/html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11420159/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com