在我的MVC应用程序视图中我有
@Html.TextBoxFor(m => m.Email, new { @class = "form-control", @readonly = "readonly" })
当我的Controller中出现if语句时,我需要删除readonly-attribute。 我如何从Controller中删除视图中的属性,或者如果我先从View中删除它然后更改我的if语句,则添加属性?
答案 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)