Eri*_*ing 18 javascript c# razor asp.net-mvc-3
好的,所以我试图在我的javascript中使用"if"语句.根据我模型中的布尔值,函数应该返回一些html或一个空字符串.这基本上就是我想做的事情:
function getSomeHtml() {
var myHtml = '';
@if(Model.UseSomeNiceHtml)
{
<text>
myHtml += '<div> <p class="label">Whatever</p></div>';
</text>
}
return myHtml;
}
Run Code Online (Sandbox Code Playgroud)
当使用foreach循环时,类似的代码工作得很好(基本上在上面的例子中用foreach替换).使用if语句,我得到错误"遇到结束标记"文本"没有匹配的开始标记.你的开始/结束标记是否正确平衡?" .当我删除<text>标签时,我收到错误"字符文字中的字符过多".
有人能指出我正确的方向吗?
谢谢!:)
And*_*iel 33
好的,这里有适合我的东西.刚刚测试过.
function getSomeHtml() {
var myHtml = '';
@{
if (Model.UseSomeNiceHtml)
{
<text>
myHtml += '<div> <p class="label">Whatever</p></div>';
</text>
}
}
return myHtml;
}
Run Code Online (Sandbox Code Playgroud)
我添加了一组额外的{}.
Eri*_*ing 10
好的,首先:感谢您的投入,让我思考.最终我找到了解决方案,问题是在关闭html标签中未转义为"/".这些标签没有转义,我的标签吓坏了.无论如何,我想我会与你分享我的完成代码的样子.我想它可以作为如何在javascript函数中使用C#循环和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;
}
Run Code Online (Sandbox Code Playgroud)
注意关闭html标签是如何转义的......