替换 html 输入中的引号
Replacing quotes in a html input
我有一些字符串来自模型,我正在从它们中输入 html。大致如下:
@inherits Nancy.ViewEngines.Razor.NancyRazorViewBase<dynamic>
@{
this.Layout = "Views/Shared/Bootstrap.cshtml";
}
<input id="ModelDescription" type="hidden" value='@if(this.Model.Model.Description != null)
{
@this.Model.Model.Description.Replace('a','b')
} ' />
一切都很好。我已经设法在其中用 b 替换 a(我继承的代码不是最稳定的代码)并且可以正常工作,仅作为示例。
您可能已经了解到,我们在引用方面遇到了问题。有些用户会输入如下内容:
Sam's little brother said "I don't like apples".
这当然意味着我们的输入变为:
<input id="ModelDescription" type="hidden" value='Sam's little brother said "I don't like apples".' />
意味着唯一被渲染的是
Sam
编辑 - Vikas 的回答给了我...
<input id="ModelDescription" type="hidden" value="@if(this.Model.Model.Description != null)
{
@this.Model.Model.Description.Replace(""","&#quot;")
} " />
使用双引号代替单引号 (""),如下所示:
<input id="ModelDescription" type="hidden" value="Sam's little brother said "I don't like apples"." />
您可以使用 @Html.Raw
和三元运算符来显示单引号和双引号,如下所示:
<input id="ModelDescription" type="hidden"
value="@Html.Raw(this.Model.Model.Description != null ?
@this.Model.Model.Description.Replace('a','b') : "")" />
以上代码将生成 HTML 标记,如下例所示:
<input id="ModelDescription" type="hidden" value="Sam's little brother said "I don't like apples".">
注意: 最好使用 @Html.HiddenFor()
而不是像那样手动设置 value
属性。
演示:.NET Fiddle
我有一些字符串来自模型,我正在从它们中输入 html。大致如下:
@inherits Nancy.ViewEngines.Razor.NancyRazorViewBase<dynamic>
@{
this.Layout = "Views/Shared/Bootstrap.cshtml";
}
<input id="ModelDescription" type="hidden" value='@if(this.Model.Model.Description != null)
{
@this.Model.Model.Description.Replace('a','b')
} ' />
一切都很好。我已经设法在其中用 b 替换 a(我继承的代码不是最稳定的代码)并且可以正常工作,仅作为示例。
您可能已经了解到,我们在引用方面遇到了问题。有些用户会输入如下内容:
Sam's little brother said "I don't like apples".
这当然意味着我们的输入变为:
<input id="ModelDescription" type="hidden" value='Sam's little brother said "I don't like apples".' />
意味着唯一被渲染的是
Sam
编辑 - Vikas 的回答给了我...
<input id="ModelDescription" type="hidden" value="@if(this.Model.Model.Description != null)
{
@this.Model.Model.Description.Replace(""","&#quot;")
} " />
使用双引号代替单引号 (""),如下所示:
<input id="ModelDescription" type="hidden" value="Sam's little brother said "I don't like apples"." />
您可以使用 @Html.Raw
和三元运算符来显示单引号和双引号,如下所示:
<input id="ModelDescription" type="hidden"
value="@Html.Raw(this.Model.Model.Description != null ?
@this.Model.Model.Description.Replace('a','b') : "")" />
以上代码将生成 HTML 标记,如下例所示:
<input id="ModelDescription" type="hidden" value="Sam's little brother said "I don't like apples".">
注意: 最好使用 @Html.HiddenFor()
而不是像那样手动设置 value
属性。
演示:.NET Fiddle