我有点问题。 我使用asp.net mvc 5并想生成一个 通过javascript中的razor下拉列表:
function addRowIndikator() {
var table = document.getElementById("tb_1");
var count = table.rows.length;
var row = table.insertRow(count - 2);
var cell1 = row.insertCell(0);
cell1.innerHTML = "3";
cell1.colSpan = 3;
var cell3 = row.insertCell(1);
cell3.innerHTML = @if(Model._LIndikator != null) {
@Html.DropDownListFor(m => m._Indikator.Id, new SelectList(Model._LIndikator, "Id", "Name"), new {
id = "selectIndi"
})
}
else { <
select >
<
option > Keine Indikatoren vorhanden < /option> <
/select>
}
};
但它不起作用。有人知道如何解决这个问题吗?
答案 0 :(得分:0)
假设这是在.cshtml文件中,您需要确保将html设置为字符串。这意味着将它们放在引号内。无论是否是剃刀代码:
@{
string innerHTML = Model._LIndikator != null ?
@Html.DropDownListFor(m => m._Indikator.Id, new SelectList(Model._LIndikator, "Id", "Name"), new {id = "selectIndi"}).ToString()
: "<select><option>Keine Indikatoren vorhanden</option></select>";
}
cell3.innerHTML = "@Html.Raw(innerHTML)";
通过这种方式,您首先创建了一个存储html的字符串变量。然后使用Html.Raw
来处理特殊字符。
如果您经常使用帮助,您可以随时使用帮助程序。