2

如何在“a href”标签中嵌入 if 语句。

比如像

<a id="spnMarkButton" href="javascript:void(0);" @if(condition here) style="display:none;" else style="display:block;" onclick="MarkStore(@storeRating.StoreId);">

但是上面的代码不起作用。

4

5 回答 5

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);">

不要混合逻辑和标记。

于 2013-05-30T07:00:06.200 回答
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);">
}
于 2013-05-30T08:40:34.350 回答
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"
    }
}

在我看来,助手类是最干净的方式。

于 2013-05-30T07:35:50.567 回答
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));">
于 2013-05-30T06:54:32.987 回答
0

如果您使用代码块,这应该可以工作

@if (condition) {…} else {…}
于 2013-05-30T06:15:45.400 回答