Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在ASP.NET MVC中不带引号地在Javascript中输入Razor_C#_Javascript_Asp.net Mvc_Razor - Fatal编程技术网

C# 如何在ASP.NET MVC中不带引号地在Javascript中输入Razor

C# 如何在ASP.NET MVC中不带引号地在Javascript中输入Razor,c#,javascript,asp.net-mvc,razor,C#,Javascript,Asp.net Mvc,Razor,我正在序列化我的模型: <script type="text/javascript"> var Model = '@Model.ToJson()'; </script> 现在,我想通过以下操作在其他javascript文件中访问我的模型: var hello = Model.id; 问题是,当我使用'@Model.ToJson()'时,由于引号的缘故,它没有正确序列化 序列化对象如下所示: var Model = "{ "id": "2231f87c-a6

我正在序列化我的模型:

<script type="text/javascript">

    var Model = '@Model.ToJson()';

</script>
现在,我想通过以下操作在其他javascript文件中访问我的模型:

var hello = Model.id;
问题是,当我使用
'@Model.ToJson()'
时,由于引号的缘故,它没有正确序列化

序列化对象如下所示:

var Model = "{ "id": "2231f87c-a62c-4c2c-8f5d-b76d11942301" }";
var Model = { "id": "2231f87c-a62c-4c2c-8f5d-b76d11942301" };
但为了让我通过Model.id访问id,它应该如下所示:

var Model = "{ "id": "2231f87c-a62c-4c2c-8f5d-b76d11942301" }";
var Model = { "id": "2231f87c-a62c-4c2c-8f5d-b76d11942301" };
如何输入没有引号的razor语法?使用asp.net语法,我认为:

var Model = <%=Model.ToJson() %>
var模型=
我怎样用剃须刀做同样的事情?谢谢

如果使用,您可以在客户机上完成所有操作,只需简单操作即可。如果向上推一个JSON字符串,在javascript中,您可以执行以下操作:

<script type="text/javascript">

    var Model = JSON.parse("@Model.JsonString");

</script>

var Model=JSON.parse(“@Model.JsonString”);

由于Razor默认情况下会转义引号,因此您需要使用:

这将变成:

var Model = {"id":"whatever"};

这是有效的javascript。

您用引号括住
@Model.ToJson()
调用。。。请注意,您的示例(
@Model.ToJson()”
和“对象看起来像”语句
var Model=“{”id:
-请注意不同的引号)之间存在不匹配,因此您可能正在运行其他一些代码。。。