2013-02-05 55 views
0

我正在使用@Html.EditorFor(model => model.MyModel),我想將我的模型中的Id屬性添加或設置爲隱藏字段。這可以通過使用ScaffoldColumnAttribute代碼完成,但我想在運行時執行此操作。可能嗎?在運行時設置ScaffoldColumn(false)

+0

你爲什麼要在運行時改變它呢?你不能在模型的代碼中將它設置爲false嗎? –

+0

@ yannick-blondeau是的我可以,我想這是一個更好的解決方案,但我只是好奇 – Marcus

回答

0

假設這是你想要的,你可以使用@Html.HiddenFor(s=>s....)

+0

是的,當然,但不會刪除屬性,當我使用EditorFor – Marcus

0

如果你想達到什麼是調用EditorFor(m => m.MyModel)時隱藏MyModel實體的ID領域,那麼你可以使用一個EditorTemplate什麼。

在您的Views/Shared文件夾中,創建一個名爲EditorTemplates的新文件夾。在該文件夾中創建一個名爲MyModel.cshtml新的視圖,其內容將是這樣的:

@model ***.MyModel 

@if (Model != null) { 
    @Html.HiddenFor(m => m.ID) 
} 

@Html.LabelFor(m => m.Property1); 
@Html.EditorFor(m => m.Property1); 

在模型上存在的測試是在這裏處理Create視圖。

最後,處理DisplayFor情況下,你必須添加的模板,這也命名爲Views/Shared/DisplayTemplates/MyModel.cshtml

+0

感謝嘗試幫助,但我知道還有其他方法創建編輯器,隱藏等等。我的問題是所有關於如果我_must_使用'Html.EditorFor(model => model.MyModel)'是否有可能在運行時修改我的模型中的單個屬性,以便它在表單中不可見?我不認爲這是一個好主意,但我只是好奇,如果有可能的話 – Marcus

相關問題