好的,我试着在我的javascript中使用一个"if“语句。根据我的模型中的布尔值,函数应该返回一些html或一个空字符串。这基本上就是我想要做的:
function getSomeHtml() {
var myHtml = '';
@if(Model.UseSomeNiceHtml)
{
<text>
myHtml += '<div> <p class="label">Whatever</p></div>';
</text>
}
return myHtml;
}
当使用foreach循环时,类似的代码工作得非常好(在上面的示例中,基本上用foreach替换if )。使用if语句,我得到错误“遇到结束标记”文本“没有匹配的开始标记。您的开始/结束标记是否正确平衡?”。当我删除<text>
标记时,我得到错误"Too many in character literal"。
有谁能给我指个方向吗?
谢谢!:)
发布于 2012-03-14 21:29:17
好的,首先:感谢你的投入,这让我开始思考。最终,我找到了解决方案,问题是关闭的html标记中有一个未转义的"/“。由于这些标签没有转义,我的标签吓坏了。不管怎样,我想和你分享一下我完成的代码是什么样子。我猜它可以作为如何在C#函数中使用javascript循环和if语句的示例。
function getSubActivitiesHtml(participantId) {
var html = "";
@{
if(Model.UseSubActivities)
{
<text>
html += "<div class=\"textinput req\"><div class=\"checkbox req\">";
</text>
foreach (var subActivity in Model.SubActivities)
{
<text>
html += "<p><input id=\"activity_" + participantId + "_@(subActivity.Id)\" name=\"Participants[" + participantId + "].SelectedSubActivities\" value=\"@(subActivity.Id)\" type=\"checkbox\" />";
html += "<label for=\"activity_" + participantId + "_@(subActivity.Id)\">@(subActivity.Name)</label></p>";
</text>
}
<text>
html += "<\/div><p class=\"label\">Delaktiviteter</p><\/div>";
</text>
}
}
return html;
}
注意关闭的html标记是如何转义的……
发布于 2012-03-13 17:44:40
好的,这里有一些对我有用的东西。刚刚测试过了。
function getSomeHtml() {
var myHtml = '';
@{
if (Model.UseSomeNiceHtml)
{
<text>
myHtml += '<div> <p class="label">Whatever</p></div>';
</text>
}
}
return myHtml;
}
我添加了一组额外的{}
。
发布于 2012-03-13 17:13:49
尝试删除<text>
标记或将它们放在myHtml += '';
语句中
https://stackoverflow.com/questions/9681089
复制相似问题