我正在做一个MVC项目。我有一个容器div,我想向其中添加部分视图。我收到一个错误,因为我的局部视图的html有回车符。
JavaScript:
$("#containerOptions").html('@{Html.RenderPartial("_DropDownOptions", Model);}');
部分视图:
<div id="divOptions">
<label>I would like to browse by:</label>
@using (var dd = Html.Bootstrap().Begin(new DropDown("Select Option").Class("dropDownElement").Id("dropDownOption")))
{
@dd.Header("Otpions");
@dd.ActionLink("City", "#").Class("dropDownElement");
@dd.ActionLink("Zip", "#").Class("dropDownElement");
@dd.ActionLink("County", "#").Class("dropDownElement");
}
</div>
我知道我的html代码不是问题,因为它可以在其他地方使用。我也只是通过<p>Hi</p><p>Fred</p>
局部视图来复制该问题,这是可行的。
但
<p>Hi</p>
<p>Fred</p>
不起作用。
有没有一种方法可以强制对.html的调用忽略文档中的回车符?我宁愿不要删除它们,因为它会大大降低可读性。
编辑:
我尝试执行字符串替换以删除新行,但是它不起作用。
var s = '@{Html.RenderPartial("_DropDownOptions", Model);}'
var bob = s.replace(/[\n\r]/g, '');
$("#containerOptions").html(bob);
与其将HTML字符串常量注入Javascript代码中,还不如将您的视图HTML作为HTML注入到页面上的隐藏元素中,并引用以下内容:
<script id="template" type="text/template">
@Html.Partial("_DropDownOptions", Model)
</script>
text/template
是未知的内容类型,因此在渲染时将被忽略。
// This reparents the elements
$("#containerOptions").append( $('#template').children() );
// Slightly slower, but leaves the original intact
$("#containerOptions").html( $('#template').html() );
这为您提供了更好的可读性和灵活性。字符串中的HTML通常是一个“坏”主意。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句