4

如何在 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>';

4

2 回答 2

6

这是你想要的?我希望这有帮助

@foreach (string n in ViewBag.NyhedsbrevListe)
{ 
    @:tbody = '<tr><td>' + n + '</td></tr>';
}

资料来源: http ://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx

于 2013-11-07T10:54:43.347 回答
2

你不能像那样混合使用 javascript 和 razor。razor 在呈现页面时在服务器端进行处理,javascript 是客户端脚本。

您需要做的是呈现一段有效的 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);
}
于 2013-11-07T10:54:18.467 回答