Javascript 如何在视图中以纯文本形式获取MVC模型字符串
我正在向具有字符串的视图发送模型。这些字符串是html编码的,我不需要它们。有没有办法不使用html编码将模型发送到视图 型号:Javascript 如何在视图中以纯文本形式获取MVC模型字符串,javascript,asp.net-mvc,razor,html-entities,html-encode,Javascript,Asp.net Mvc,Razor,Html Entities,Html Encode,我正在向具有字符串的视图发送模型。这些字符串是html编码的,我不需要它们。有没有办法不使用html编码将模型发送到视图 型号: public class Package { public string String { get; set; } } 控制器: public ActionResult GetPackage() { Package oPackage = new Package(); oPackage.String = "using lots of \" an
public class Package
{
public string String { get; set; }
}
控制器:
public ActionResult GetPackage()
{
Package oPackage = new Package();
oPackage.String = "using lots of \" and ' in this string";
return View(oPackage);
}
视图:
@model Models.Package
(功能(){
//这里@Model.String有很多';和“
var String=“@Model.String”.replace(/&&39;/g,”).replace(/“/g,”);
//这里的字符串看起来没问题,因为我运行了两个replace函数。但是可以将字符串清理到视图中吗?
})();
运行replace函数是一种解决方案,但是只获取字符串而不进行编码将是一件好事
@Html.Raw(yourString)
这应该起作用:
@model Models.Package
<script type="text/javascript">
(function () {
var String = "@Html.Raw(Model.String)";
})();
</script>
@model Models.Package
(功能(){
var String=“@Html.Raw(Model.String)”;
})();
由于我认为这与我之前的答案不同,我在这里放了另一个答案。System.Web.HttpUtility.JavaScriptStringEncode(Model.String,true);
@model Models.Package
(功能(){
var String=“@System.Web.HttpUtility.JavaScriptStringEncode(Model.String,true)”;
})();
希望这有帮助。:)首先,您需要将字符串转换为。
然后需要防止MVC将其重新编码为HTML(因为它是Javascript,而不是HTML)。
因此,您需要的代码是:
@using System.Web
@model Models.Package
<script type="text/javascript">
var s = "@Html.Raw(HttpUtility.JavaScriptStringEncode(Model.AnyString, addDoubleQuotes: false))";
</script>
@使用System.Web
@模型包
var s=“@Html.Raw(HttpUtility.JavaScriptStringEncode(Model.AnyString,addDoubleQuotes:false))”;
这是删除html编码的正确答案。但是,问题在于现在纯文本中的“太多”。这就破坏了“”中文本的封闭性。返回到html编码的文本和.replace()。因为答案删除了问题所要求的“获取不带编码的字符串”内容,所以我发现这是最准确的答案。
@model Models.Package
<script type="text/javascript">
(function () {
var String = "@System.Web.HttpUtility.JavaScriptStringEncode(Model.String, true)";
})();
</script>
@using System.Web
@model Models.Package
<script type="text/javascript">
var s = "@Html.Raw(HttpUtility.JavaScriptStringEncode(Model.AnyString, addDoubleQuotes: false))";
</script>