如何在razor foreach中构建我的html?我在foreach中得到“无法解决tbody”。
我的代码:
function loadNyhedsbrevTable() {
var tbody = "";
$('#NyhedsbrevTable tbody').empty();
@foreach (string n in ViewBag.NyhedsbrevListe)
{
tbody = '<tr><td>' + n + '</td></tr>';
}
$('#NyhedsbrevTable tbody').append(tbody);
}
我需要这样的东西吗?
<not razor> tbody = '<tr><td>' + @n + <not razor>'</td></tr>'
;
答案 0 :(得分:5)
这是你在找什么? 我希望这有帮助
@foreach (string n in ViewBag.NyhedsbrevListe)
{
@:tbody = '<tr><td>' + n + '</td></tr>';
}
来源: http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx
答案 1 :(得分:2)
你不能混合使用javascript和razor。 razor在渲染页面时获得处理服务器端,javascript是客户端srcipt。
您需要做的是渲染一段有效的JavaScript代码。假设你想为循环中的每个项追加一行,那么这样的东西应该有效:
function loadNyhedsbrevTable() {
var tbody = "";
$('#NyhedsbrevTable tbody').empty();
@foreach (string n in ViewBag.NyhedsbrevListe)
{
<text>
tbody += '<tr><td>@(n)</td></tr>';
</text>
}
$('#NyhedsbrevTable tbody').append(tbody);
}
这将导致以下渲染输出,例如:
function loadNyhedsbrevTable() {
var tbody = "";
$('#NyhedsbrevTable tbody').empty();
tbody += '<tr><td>one</td></tr>';
tbody += '<tr><td>two</td></tr>';
tbody += '<tr><td>three</td></tr>';
$('#NyhedsbrevTable tbody').append(tbody);
}