c# - 将 Html.Partial 添加到 Javascript

标签 c# javascript asp.net html razor

我想使用 ASP.NET Html.Partial View 在 Javascript 中设置一个字符串。问题是 Html.Partial 给出了一个 HtmlString 而不是我可以用 JQuery 处理的 Javascript 字符串。

Javascript 代码:

myfunction= function () {
   ...
   var badge=@Html.Partial("_UserBadge",User.Identity.Name).ToString();
   ....
   $("#myNode").append(badge);
};

Html-部分“_UserBadge.cshtml”:

@model WT.Models.ttUser

<div style="..">
...some more lines html...
</div>

我的问题是每行开头的 ' 和末尾的 '+ 没有被添加。我该如何解决这个问题?

代码结果为:

var badge=
<div style="..">
...some more lines html...
</div>;

而不是 javascript 字符串:

var badge=
'<div style="..">   '+
'...some more lines html...   '+
'</div>  ';

最佳答案

你不能只使用类似的东西吗:

var badge='@Html.Partial("_UserBadge",User.Identity.Name).Replace( "\n", "\\n" ).Replace( "'", "\\'" )';

您在问题中建议您希望结果是:

'<div style="..">   '+
'...some more lines html...   '+
'</div>  ';

但请注意,这等同于:

'<div style="..">   ...some more lines html...   </div>  ';

这可能不是您真正想要的(因为这与 _UserBadge 页面不同)。

您可能实际上想要的是更像这样的东西:

'<div style="..">\n...some more lines html...\n</div>';

该示例将换行符替换为 "\n",这将被 javascript 解释为换行符。最后,您需要将单引号替换为 "\'" 以确保您不会意外终止字符串。

关于c# - 将 Html.Partial 添加到 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14506499/

相关文章:

c# - 使用从 SQL Server CE 表中获取的值填充组合框

javascript - node.js 和浏览器之间的 JavaScript 语法差异是什么?

javascript - 使用 Javascript onfocus 更改 GridView 中的链接按钮背景颜色

c# - LINQ 获取特殊字符的最后位置

c# - 格式化 XML 字符串以打印友好的 XML 字符串

javascript - 重构具有相同原型(prototype)属性的对象

c# - MVC结构查询

javascript - 如何使用javascript在文件上传中获取不带扩展名的文件名

c# - 使用 Fody 的 Mono 支持将 dll 嵌入到 exe 中

javascript - 是否可以将匿名函数附加到两个不同的元素/事件?