如何在 JavaScript 中输入 Razor ASP.NET MVC 中不带引号
How to enter Razor within Javascript without quotes in ASP.NET MVC
我正在序列化我的模型:
<script type="text/javascript">
var Model = '@Model.ToJson()';
</script>
ToJson 是一种扩展方法:
public static string ToJson(this object obj)
{
var serializer = new JavaScriptSerializer();
var val = serializer.Serialize(obj);
return val;
}
现在我想通过执行以下操作在其他 JavaScript 文件中访问我的模型:
var hello = Model.id;
问题是当我使用 '@Model.ToJson()'
时,由于引号,它无法正确序列化。
序列化的对象如下所示:
var Model = "{ "id": "2231f87c-a62c-4c2c-8f5d-b76d11942301" }";
但是为了让我通过 Model.id 访问id,它应该看起来像这样:
var Model = { "id": "2231f87c-a62c-4c2c-8f5d-b76d11942301" };
如何输入不带引号的剃须刀语法?使用 asp.net 语法我认为它是:
var Model = <%=Model.ToJson() %>
如何使用剃须刀做同样的事情?谢谢!
如果你使用这个JSON插件,你可以在客户端上完成所有操作,只是一些事情。 如果你向上推送一个JSON字符串,在javascript中你可以这样做:
<script type="text/javascript">
var Model = JSON.parse("@Model.JsonString");
</script>
由于 Razor 默认会转义引号,因此您需要使用 Html.Raw:
var Model = @Html.Raw(Model.ToJson());
它会把它变成:
var Model = {"id":"whatever"};
这是有效的JavaScript。
相关文章:
- 将Javascript数组发送到控制器ASP.NET MVC
- 什么'是在asp.net MVC中将本地化的resources.resx文件转换为javascript文件的有效
- C#asp.net mvc Set CheckBoxFor已检查的具有Model Value的属性
- ASP.NET MVC 3-在ajax调用后,重定向到新页面或生成页面刷新
- 在创建视图mvc.net的过程中使用javascript
- MVC.Net 4 Razor问题使用<文本>标签
- 将文件异步上传到 MVC.NET
- 无论如何 MVC.Net Cdn 调用回退
- 如何加快从Angular/Mvc.net加载图像的速度
- 如何使用角度模块“ui-route”在指令中查找模板URL,而不会在MVC .NET上出现错误
- 将MVC.NET Razor与Javascript结合起来构建一个数组
- MVC.NET提示用户登录
- 从mvc.net获取用于AngularJS http的url的健壮方法是什么?
- MVC.net 3 -可维护的,重构友好的Javascript文件
- 在c#代码MVC . net中检索html中的id元素
- MVC.NET中引导日期拾取器的问题
- MVC . net 4.6询问用户是否想要运行JS文件
- 要求在MVC . net中加载竞速问题
- asp.net mvc - .NET MVC:查找默认的 Bootsrap JavaScript
- 在MVC.NET中使用html helper编辑模式