在使用Html.BeginForm创建的表单标记的属性中使用JSON

在使用Html.BeginForm创建的表单标记的属性中使用JSON,json,asp.net-mvc,razor,Json,Asp.net Mvc,Razor,我需要用JSON对象填充由Html.BeginForm生成的表单标记的属性。我找不到一种方法让它打印属性值而不编码它。我尝试过使用和不使用Html.Raw,在这两种情况下,JSON中的引号仍然会被转义。单引号和双引号都会出现这种情况。下例中的问题是“数据反馈”属性 代码: 结果: <form action="/contactform/sendmessage" class="form-element" data-feedback="{&#39;success&#39;: &a

我需要用JSON对象填充由Html.BeginForm生成的表单标记的属性。我找不到一种方法让它打印属性值而不编码它。我尝试过使用和不使用Html.Raw,在这两种情况下,JSON中的引号仍然会被转义。单引号和双引号都会出现这种情况。下例中的问题是“数据反馈”属性

代码:

结果:

<form action="/contactform/sendmessage" class="form-element" data-feedback="{&#39;success&#39;: &#39;&#39;, &#39;error&#39;: &#39;glyphicon-exclamation-sign&#39;}" data-toggle="validator" enctype="multipart/form-data" id="ContactForm" method="post" role="form">


你试过
@Html.Raw(Json.Encode(“{…}”))
吗?不需要重做。您可能应该尝试从
BeginForm
helper继承的自定义HTML帮助程序,以防止Razor视图中出现双重编码字符串。@chakeda我刚刚尝试了您的建议,但不幸的是,它仍然编码JSON编码版本。谢谢你!嗯,你试过NewtonSoft解析吗@chakeda我遇到的限制不是对JSON进行编码,而是我需要为值传递任何信息以使其不被HTML编码。beginnform似乎并不关心属性的值是什么,也不关心它是如何格式化的,它对值进行Html编码。目前,我已经通过使用JavaScript在结束表单标记后添加属性来解决这个问题。谢谢你!
<form action="/contactform/sendmessage" class="form-element" data-feedback="{&#39;success&#39;: &#39;&#39;, &#39;error&#39;: &#39;glyphicon-exclamation-sign&#39;}" data-toggle="validator" enctype="multipart/form-data" id="ContactForm" method="post" role="form">