【发布时间】:2014-03-25 16:04:29
【问题描述】:
在 ASP.NET MVC4 中,我在表中动态生成 <tr>s。我这样做是为了根据模型中的变量应用不同的onclick 值。
当我这样做时:
if(publication.ActionType == ActionType.NoticeOnly){
<tr onclick='$launchMyEman(this, 'NoticeOnly')'>
} // Visual Studio treats this line as text, note code
所以我使用Html.Encode() 作为解决方法。这是我当前的代码:
if(publication.ActionType == ActionType.NoticeOnly){
@Html.Raw("<tr onclick='$launch(this, 'NoticeOnly')'>")
} else if (publication.ActionType == ActionType.ReadAndSign) {
@Html.Raw("<tr onclick='$launch(this, 'ReadAndSign')'>")
} else {
@Html.Raw("<tr onclick='$launch(this, 'ReadAndSignNotice')'>")
}
当这个View被加载时,会导致如下错误:
遇到没有匹配开始标记的结束标记“tr”。是你的 开始/结束标签是否正确平衡?
</tr> 标签出现在很多 <td>s 之后。如果我删除上面的代码并放置一个简单的<tr> 它可以工作,所以错误肯定是上面的代码。当我在视图上放置断点时,它永远不会到达。它在运行时。
【问题讨论】:
-
查看呈现的 html 的视图源并确保遵循标准 HTML
-
我看不到渲染的 HTML,我得到的只是一个解析器错误页面。
-
当您确实希望在网页上显示 字符时,应该进行编码。你试图放下 HTML,所以你特别不想想要编码。
-
是的,我的错。我尝试过使用 Html.Raw() 并出现同样的错误。
标签: jquery html asp.net asp.net-mvc-4