2017-04-09 159 views
0

刪除或添加屬性在我的MVC應用程序中查看我 @Html.TextBoxFor(m => m.Email, new { @class = "form-control", @readonly = "readonly" })ASP.NET MVC 5如何Html.TextBoxFor

我需要在if語句在我的控制器時刪除只讀屬性。 我如何從Controller中刪除視圖中的屬性,或者如果我首先從視圖中刪除它並添加屬性,然後更改我的if語句,我該如何?

回答

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) 
+0

謝謝回答!我收到「屬性或索引器'ViewDataDictionary.Is只讀'不能被分配 - 它是隻讀的 – JayPi

+0

對不起,更改屬性名稱,'IsReadOnly'可能已經在'ViewDataDictionary'中實現。我正在更新答案 –

+0

不知道我是否瞭解ViewData的工作方式,但沒有收到消息:'ViewDataDictionary'不包含'IsEmailReadOnly'的定義,也沒有擴展方法'IsEmailReadOnly'接受類型' ViewDataDictionary'可以被找到(你是否缺少使用指令或程序集引用?) – JayPi