C# 字符串格式,包含引号的文本

C# 字符串格式,包含引号的文本,c#,asp.net-mvc-4,C#,Asp.net Mvc 4,好吧,假设我有一些这样的文字: 你好,5'f@USA 我正在阅读我的控制器和模型中的文本,如下所示 Notes = string.Format(@"{0}", client.Notes) 然后,我将在我的页面上显示它,如下所示: <input type="text" value="@Model.Notes"> 然后查看浏览器\文本是什么 <input type="text" value=" Hello 5&#39;f @ &quot;USA&

好吧,假设我有一些这样的文字:

你好,5'f@USA

我正在阅读我的控制器和模型中的文本,如下所示

Notes =  string.Format(@"{0}", client.Notes)
然后,我将在我的页面上显示它,如下所示:

 <input type="text"  value="@Model.Notes">
然后查看浏览器\文本是什么

<input type="text"  value=" Hello 5&#39;f @ &quot;USA&quot>
这是抛出未捕获的SyntaxError:意外标记非法

我需要做什么才能正确格式化它?

尝试使用。这应该为您编码字符串

这意味着:

Notes =  string.Format(@"{0}", HttpServerUtility.HtmlEncode(client.Notes));
尝试使用。这应该为您编码字符串

这意味着:

Notes =  string.Format(@"{0}", HttpServerUtility.HtmlEncode(client.Notes));

为什么不在视图中使用Html.TextBoxForm=>m.Notes?这将解决所有编码问题。

为什么不在视图中使用Html.TextBoxForm=>m.Notes?这将解决所有的编码问题。

我认为如果您使用from@html.Raw,您的问题将得到解决

<input type="text"  value="@Html.Raw(Model.Notes)">

我想如果你使用from@html.Raw,你的问题就会解决

<input type="text"  value="@Html.Raw(Model.Notes)">


嗯,好像Razor引擎被字符串末尾的双引号弄糊涂了-你能试试value='@Model.Notes'单引号吗?Yeap也尝试过,但没有luckWhat版本的MVC?如果删除双引号结束符,是否有效?仅供参考,通常最好说明您在标签中使用的确切技术。使用from@html.RawModel.notes请提供一个简短但完整的,这是一个重复的问题示例,因为就我而言-。嗯,这就像剃须刀引擎与字符串末尾的双引号混淆一样-您可以尝试value='@Model.Notes'单引号吗?Yeap也尝试过,但没有使用luckWhat版本的MVC?如果删除双引号结束符,是否有效?仅供参考,通常最好说明您在标签中使用的确切技术。使用from@html.RawModel.notes请提供一个简短、完整、可复制的问题示例,因为就我而言-。TextBoxFor有什么区别?这只是一个将UI绑定到属性的帮助器方法。@James,这个帮助器的设计目的是避免遇到这样的代码问题。这不是为模型属性构建输入的正确方法。是的,确切地说,这是一种帮助方法,可以避免您自己编写HTML。它不做任何额外的HTML编码输出到@Model.Notes已经做了什么。TextBoxFor有什么区别?这只是一个将UI绑定到属性的帮助器方法。@James,这个帮助器的设计目的是避免遇到这样的代码问题。这不是为模型属性构建输入的正确方法。是的,确切地说,这是一种帮助方法,可以避免您自己编写HTML。它不做任何额外的HTML编码输出到@Model.Notes已经做了什么。你有一个很好的理由为什么Raw会工作,或者你只是猜测?因为使用Html.Raw已经写满了它。另外,@Model.Notes应该可以工作,并且是输出HTML编码内容时的推荐方法。@James此方法使用IHtmlString类包装HTML标记,该类呈现未编码的HTML.msdn我提出的观点,我认为您似乎没有理解,问题的解决方案是完全避免它,这也恰好是非常危险的。@James要防止XSS,你必须检查用户输入,然后将其存储在数据库中,像AntiXSS这样的库可以帮助你,如果用户输入没有任何危险,你可以通过@Html.Raw来显示它。这个想法错了吗?防止XSS与你的行为无关将数据存储在数据库中,而不是如何在客户机上呈现数据-使用Html。Raw呈现未编码的内容,这将使您打开XSS。您是否有充分的理由说明Raw可以工作,或者您只是猜测?因为使用Html.Raw已经写满了它。另外,@Model.Notes应该可以工作,并且是输出HTML编码内容时的推荐方法。@James此方法使用IHtmlString类包装HTML标记,该类呈现未编码的HTML.msdn我提出的观点,我认为您似乎没有理解,问题的解决方案是完全避免它,这也恰好是非常危险的。@James要防止XSS,你必须检查用户输入,然后将其存储在数据库中,像AntiXSS这样的库可以帮助你,如果用户输入没有任何危险,你可以通过@Html.Raw来显示它。这个想法错了吗?防止XSS与你的行为无关将数据存储在数据库中,而不是如何在客户机上呈现数据-使用Html.Raw呈现未编码的内容,这将向XSS打开。