如何在“a href”标记内嵌入if语句。
例如
<a id="spnMarkButton" href="javascript:void(0);" @if(condition here) style="display:none;" else style="display:block;" onclick="MarkStore(@storeRating.StoreId);">
但上面的代码无效。
答案 0 :(得分:5)
你采取了错误的做法。
在模型类中,添加如下的getter:
string MarkButtonDisplay
{
get
{
if(condition here)
return "none";
else
return "block";
}
}
将标记更改为:
<a id="spnMarkButton" href="javascript:void(0);" style="display: @Model.MarkButtonDisplay;" onclick="MarkStore(@storeRating.StoreId);">
不要混淆逻辑和标记。
答案 1 :(得分:1)
是否有特定原因需要将其嵌入标签?
@if(condition here)
{
<a id="spnMarkButton" href="javascript:void(0);" style="display:none;" onclick="MarkStore(@storeRating.StoreId);">
}
else
{
<a id="spnMarkButton" href="javascript:void(0);" style="display:block;" onclick="MarkStore(@storeRating.StoreId);">
}
答案 2 :(得分:0)
如果您使用代码块
,这应该有效@if (condition) {…} else {…}
答案 3 :(得分:0)
试试这个:
<a id="spnMarkButton" href="javascript:void(0);" @if(1==1) { <text>style="display:none;"</text> } else { <text>style="display:block;"</text> } onclick="MarkStore(@(storeRating.StoreId));">
答案 4 :(得分:0)
您可以使用(?:)运算符轻松完成,或者使用帮助程序类更好:
@* Inline with MvcHtmlString *@
<a id="spnMarkButton" href="javascript:void(0);" @(Model == null ? new MvcHtmlString("style=\"display:none;\"") : new MvcHtmlString("style=\"display:block;\""))>My link 1</a>
@* Inline with Html.Raw *@
<a id="spnMarkButton" href="javascript:void(0);" @(Model == null ? Html.Raw("style=\"display:none;\"") : Html.Raw("style=\"display:block;\""))>My link 2</a>
@* Using helper class - cleanest *@
<a id="spnMarkButton" href="javascript:void(0);" @RenderDisplayStyle()>My link 3</a>
@helper RenderDisplayStyle(){
if (Model == null)
{
@:style="display:none"
}
else
{
@:style="display:block"
}
}
在我看来,助手课是最干净的方式。