繁体   English   中英

如何在Razor中使用JavaScript字符串?

[英]How do I use a JavaScript string in Razor?

我想将Html.Raw()用于丹麦字符。

无法在Razor的Html.Raw()中使用JavaScript item ,还是什么?

错误:“无法解析符号'item'。

我该如何解决?

var tbody = "";
for (var i = 0; i < result.length; i++) {
    var item = result[i];

    // Titel, Type
    tbody = tbody + '<tr>' + 
        '<td>' + '@(Html.Raw(item.Title))' + '</td>' + // <-- Cannot resolve symbol 'item'
        '<td>' + item.Type + '</td>' +
        + '</tr>';
}
$('#AttachmentTable tbody').append(tbody);

这是行不通的。 首先了解页面的执行过程。 .chtml页面上,第一个Razor引擎将解析整个页面。 之后,页面加载javascript将开始执行。

现在在您的方案中,当Razor引擎解析页面时,它现在将完全找到项目并引发错误。

我认为没有必要使用@(Html.Raw(item.Title)) 请直接使用item.Title,以便最终声明如下:

  tbody = tbody + '<tr>' + 
    '<td>' + item.Title + '</td>' +
    '<td>' + item.Type + '</td>' +
    + '</tr>';

抱歉,您无法执行此操作。 Razor Engine首先作为服务器端代码加载,然后在客户端上加载javascript。 假设使用ASP.NET MVC,请尝试使用AJAX,将数据传递到控制器,然后从基础视图中处理数据。 只是为了澄清,相反是合理的,我的意思是在剃须刀代码中使用razor代码。

编辑:我无法评论您的问题,所以我编辑我的答案:您说:“ Item.Title包含丹麦字母,例如'æøå',在html中带有“?”。如Sujit Patil所建议的,您不需要@ Html.Raw,但纯JavaScript可以实现您的目标。 因此,请使用item.Title但...您必须在文档头中将元字符集设置为ISO-8859-1。 像这样: <meta charset="ISO-8859-1" /> 我已经尝试过了,它正在工作!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM