Mar*_*ark 3 javascript visual-studio razor
我通过ViewBag将JSON对象传递给Javascript,我的视图中包含以下代码:
var jsonResultData = @Html.Raw(ViewBag.JsonResultData);
这种方法工作正常,但VisualStudio不断给我一个'条件编译已关闭'警告.似乎VS想要@ Html.Raw(ViewBag.JsonResultData)的引用; 如果我添加引号,jQuery会将变量视为字符串而不是JSON数据.
我的做法有缺陷吗?还有另一种方法我应该接近这个吗?如果没有,我可以禁用VS警告吗?警告的一个恼人的副作用是我无法使用CTRL KD格式化我的代码.
你为什么使用ViewBag?我想在你的控制器操作中你已经手动将一些模型序列化为JSON,不是吗?像这样的东西:
public ActionResult Foo()
{
    var model = ...
    ViewBag.JsonResultData = new JavaScriptSerializer().Serialize(model);
    return View(model);
}
我不建议你这样做.而是这样做:
public ActionResult Foo()
{
    var model = ...
    return View(model);
}
在你看来:
<script type="text/javascript">
    var jsonResultData = @Html.Raw(Json.Encode(Model));
</script>
就警告而言,Razor Intellisense远非完美.您可能确实会收到一些警告,特别是当您将razor与javascript混合使用时.我们只希望他们能在未来的ASP.NET MVC版本中解决这个问题.暂时忽略那些警告.老实说,当我处理视图时,我不再查看Visual Studio中的警告或错误,因为事先我知道它们是错误的并且我的应用程序在运行时工作得很好.
| 归档时间: | 
 | 
| 查看次数: | 4012 次 | 
| 最近记录: |