use*_*594 0 html c# asp.net-mvc-3
我有一个观点,即根据模型发送的内容构建一个下拉列表.
@{
StringBuilder sb = new StringBuilder("<select id=\"field"+Model.Id+"\">");
sb.Append("<option>Choose...</option>");
foreach(var s in Model.Choices)
{
sb.Append("<option>" + s + "</option>");
}
sb.Append("</select>");
var str = sb.ToString();
}
$("#label" + "@Model.Id").html("@str");
Run Code Online (Sandbox Code Playgroud)
但是在浏览器中,它实际上输出的是整个字符串,而不是创建下拉列表 "<select id="field3"><option>Choose...</option><option>Movie</option><option>TV Show</option><option>Shorts</option></select>"
为什么这样做?如何让它显示实际的下拉列表?
你需要的是HtmlString.
@{
StringBuilder sb = new StringBuilder("<select id=\"field"+Model.Id+"\">");
sb.Append("<option>Choose...</option>");
foreach(var s in Model.Choices)
{
sb.Append("<option>" + s + "</option>");
}
sb.Append("</select>");
var str = new HtmlString(sb.ToString());
}
Run Code Online (Sandbox Code Playgroud)
字符串现在自动进行Html编码,如果它们是纯字符串但HtmlString对象按原样呈现.
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
2280 次 |
| 最近记录: |