在 asp.net-mvc 中,处理放入输入值的字符串变量中的双引号的正确方法是什么

In asp.net-mvc, what is the correct way to handle double quotes in a string variable being put into an input value

我在 asp.net-mvc 站点的视图中有以下代码:

<input type="hidden" id="test" name="riskIssues[0].Reason" value="<% = risk.Reason %>"  />

问题是,如果 risk.Reason 变量中有一个双引号,那么可以说原因是一个类似这样的字符串:

  We need them to "ask" us first

然后我尝试使用 jquery ($("#test").val() 读取值,我只得到双引号之前的文本(在上面的示例中,我会得到

  We need them to 

正确的编码方式是什么,这样我就可以读取整个字符串,包括双引号和后面的所有内容

您可以使用 HttpServerUtility.HtmlEncodingWebUtility.HtmlEncode 对视图中收到的数据进行 html 编码。如例子所示here (MSDN) & here (MSDN)

你的字符串最终看起来像这样:

 We need them to "ask" us first

 We need them to &quot;ask&quot; us first

也看看here (dotnetperls)

Fiddle

您可以使用 <%: risk.Reason %> 对文本进行编码。

参考:http://weblogs.asp.net/scottgu/new-lt-gt-syntax-for-html-encoding-output-in-asp-net-4-and-asp-net-mvc-2