我想将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);
答案 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" />
。我试过这个并且它正在工作!