C# 使用空格将数据序列化为JSON

C# 使用空格将数据序列化为JSON,c#,razor,C#,Razor,我试图通过data-*属性将数据从cshtml文件传递到Javascript。 我用的是这样的方法 @using Newtonsoft.Json; @{ var list = JsonConvert.SerializeObject(Model.ListToPass); } <div id="mainView" data-custom=@Html.Raw(list)> </div> @使用Newtonsoft.Json; @{var list=JsonConv

我试图通过data-*属性将数据从cshtml文件传递到Javascript。 我用的是这样的方法

@using Newtonsoft.Json; 
@{ var list = JsonConvert.SerializeObject(Model.ListToPass); }
<div id="mainView"
     data-custom=@Html.Raw(list)>
</div>
@使用Newtonsoft.Json;
@{var list=JsonConvert.SerializeObject(Model.ListToPass);}
这在理论上是可行的,但由于我的一些数据中有包含空格的值,例如“命名某物”,所以我的数据实际上是作为

<div id="mainView" 
     data-custom="[{"Id":1,"Field":"Name">
</div>

根据@MeeraWeeks验证的评论回答:
解决方案

@Html.Raw(list)
中添加
撇号,忽略生成的
Html
中的空格
div
标签将是:

@using Newtonsoft.Json; 
@{ var list = JsonConvert.SerializeObject(Model.ListToPass); }

<div id="mainView"
     data-custom='@Html.Raw(HttpUtility.HtmlEncode(list))'>
</div>
@使用Newtonsoft.Json;
@{var list=JsonConvert.SerializeObject(Model.ListToPass);}

你找到解决这个问题的方法了吗?我首先在
标记中创建一个变量,然后在js文件中引用它。它可以工作,但不是一个优雅的解决方案。有一个优雅的解决方案:
通过在
@Html.Raw(list)
中添加
撇号来忽略Html中的空格。对我来说很好。如果它对你有用,我可以把它作为一个答案加上去,这样我会帮助别人的。是的,它确实有帮助!非常感谢。我可以移动它来回答吗?嗨,我还有一个问题。如果我的数据中有
,该怎么办?有什么办法可以逃避它吗?嗨,我会检查这个,然后再回来找你。要解决
'
的问题,你可以使用
HttpUtility.HtmlEncode
,然后数据将是
data custom='@Html.Raw(HttpUtility.HtmlEncode(list)),
,我希望这会有帮助:)