javascript - 将Html.Partial的结果设置为js字符串

标签 javascript c#

这是我想要完成的任务的简化版本:

@{
    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/

相关文章:

C# EF 在一个请求中更新实体

c# - XmlReader.ReadString 是否已弃用或废弃?

javascript - 在javascript中同时捕获鼠标左键和右键单击

javascript - 模块 'ngMockE2E' 不可用! AngularJS

javascript - 在 jQuery 执行时删除页面加载 'glitch'

javascript - 保留表单值,例如下拉列表和单选按钮,而不使用任何网络存储

c# - 不允许我创建超过 1 个 LineRenderer

javascript - 如何检测事件是否是浏览器事件

c# - HtmlAgilityPack 设置节点 InnerText

c# - 我们什么时候需要使用 float.PositiveInfinity 和 float.NegativeInfinity?