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

时间:2014-09-19 07:05:39

标签: javascript razor

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

JavaScript item不能在Razor的Html.Raw()中使用,或者是什么?

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

我该如何解决这个问题?

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);

2 个答案:

答案 0 :(得分:0)

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

现在,在Razor引擎解析页面的情况下,它现在会找到,并且会引发错误。

我认为没有必要使用 @(Html.Raw(item.Title))。 insted直接使用 item.Title 所以你的最终陈述将是:

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

答案 1 :(得分:0)

抱歉,你不能这样做。 Razor Engine首先加载为服务器端代码,然后在客户端上加载javascript。尝试使用AJAX,将数据传递给控制器​​,然后从底层视图处理它,假设您使用ASP.NET MVC。 只是为了澄清,相反的是合理的,我的意思是将剃刀代码用于javascript代码。

修改 我不能评论你的问题所以我编辑我的答案: 你说:“Item.Title包含像'æøå'这样的丹麦字母,在html中给出一个”?“ 正如Sujit Patil建议的那样,你不需要@ Html.Raw,而是纯粹的javascript来实现你的目标。所以使用item.Title但...... 您必须在文档头中将元字符集设置为ISO-8859-1。像这样: <meta charset="ISO-8859-1" />。我试过这个并且它正在工作!