簡體   English   中英

使用Razor動態禁用MVC 3中的表單字段

[英]Dynamically disabling form fields in MVC 3 with Razor

我在Razor視圖中有一個較大的表單,並希望根據要傳遞的模型對象的狀態來禁用某些表單元素。因此,必須定義一些邏輯以確定是否顯示此元素,並將其顯示為-僅或使其可編輯。

我目前的想法是引導我使用此處的邏輯定義一些Razor @helper,盡管我不確定這是否是最好的方法。 有一些像 ...

@helper determineElementStatus(string modelProperty)
{
  if (modelProperty == someState) {
    @Html.TextBoxFor....etc
  }
}

@determineElementStatus(model.someProperty)

確實,我不確定該視圖是否正確。 它實際上表示邏輯,它改變了表單的外觀,但是在其他地方以及如何放置是最好的? 幫助將不勝感激。

在視圖中,您可以控制更改CSS的邏輯。 例如,根據Model值的值,我創建displayMode並將其應用於HTML。

  @{
        string isInherited = Model.IsInheritedValue ? "editor-field inherColor" : "editor-field";
        object displayMode = Model.IsDisabled ? new { @disabled = "disabled", @class = isInherited } : (object)new { @class = isInherited };
    }

所以現在只要你顯示

@Html.TextBoxFor(x => x.Value, displayMode)

displayMode將確定如何顯示它。 希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM