gpt4 book ai didi

javascript - 传递 JSON 对象时 View 中出现 Visual Studio "Conditiional compilation is turned off"错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:19:18 26 4
gpt4 key购买 nike

我在 View 中使用以下代码通过 ViewBag 将 JSON 对象传递给 Javascript:

var jsonResultData = @Html.Raw(ViewBag.JsonResultData);

这种方法工作正常,但 VisualStudio 一直给我一个“条件编译已关闭”警告。似乎 VS 想要引用 @Html.Raw(ViewBag.JsonResultData);如果我添加引号,jQuery 会将变量视为字符串而不是 JSON 数据。

我的方法有缺陷吗?我还有其他方法可以解决这个问题吗?如果不能,我可以禁用 VS 警告吗?警告的一个令人讨厌的副作用是我无法使用 CTRL K-D 格式化我的代码。

最佳答案

为什么要使用 ViewBag?我想在您的 Controller 操作中,您已经手动将一些模型序列化为 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 版本中解决这个问题。暂时忽略这些警告。老实说,当我使用 View 时,我不再查看 Visual Studio 中的警告或错误,因为我事先知道它们存在错误,而我的应用程序在运行时运行良好。

关于javascript - 传递 JSON 对象时 View 中出现 Visual Studio "Conditiional compilation is turned off"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5970951/

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