ASP.NET MVC 5如何在Html.TextBoxFor中删除或添加属性

时间:2017-04-09 17:17:10

标签: c# asp.net asp.net-mvc

在我的MVC应用程序视图中我有  @Html.TextBoxFor(m => m.Email, new { @class = "form-control", @readonly = "readonly" })

当我的Controller中出现if语句时,我需要删除readonly-attribute。 我如何从Controller中删除视图中的属性,或者如果我先从View中删除它然后更改我的if语句,则添加属性?

1 个答案:

答案 0 :(得分:2)

我了解您希望有条件地将readonly属性添加到文本框中。

您可以使用ViewData,从控制器将ViewData["IsEmailReadOnly"]分配给布尔值

if(MyCondition())
    ViewData["IsEmailReadOnly"] = true;
else
    ViewData["IsEmailReadOnly"] = false;

然后在你的视图中:

@{
    object textBoxAttrs;
    if((bool) ViewData["IsEmailReadOnly"]) {
        textBoxAttrs = new { @class = "form-control", @readonly = "readonly" };
    }
    else
    {
        textBoxAttrs = new { @class = "form-control" };
    }
}

@Html.TextBoxFor(m => m.Email, textBoxAttrs)