这是我想要完成的任务的简化版本:
@{
Thing t = new Thing(); // create an object
IHtmlString TV = Html.Partial("ThingView", t); // get html based on that model
}
<script>
$(function(){
var tv = "@TV"; // hold the html in a js variable
}
</script>
但是我遇到了 JavaScript 错误:
SyntaxError: unterminated string literal
var tv = "
我知道问题是 Html.Partial 正在生成带有一堆空格的 html,并且它弄乱了 javascript,但是似乎应该有一种方法可以说 @TV.NoWhiteSpace()
或其他东西。
我已经寻找解决方案,但我看到的只是 Regex solutions ,这似乎是一个草率且可能充满错误的解决方案。
是否有更干净或首选的方法来执行此操作?
最佳答案
我让 JQuery 来处理它:
首先,将 html.partial 的结果存储在隐藏的 div 中:
<div id="T1" style="display:none;">@T1</div>
然后,使用JQuery将div的内容保存到js变量中:
var t1 = $("#T1").html();
注意:我只是发布这个答案,因为我在任何地方都找不到更好的答案。我不会将其标记为答案,希望 C# 能够修复这个明显的疏忽,并且将来有人可以回答它。
关于javascript - 将Html.Partial的结果设置为js字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32189166/