2017-04-30 73 views
1

我有一個ASP.Net MVC項目,我正在努力,我有一個模型,我想變成我的形式。我想爲此使用EditorForModel(),因爲如果我決定稍後向模型添加/刪除屬性,我希望它自動向表單中添加字段。如何擺脫EditorForModel中的默認標籤

我遇到的問題是,編輯器模型考慮每個屬性,並創建下面的HTML:(這只是普通的不是實際的代碼)

<div class="editor-label"><label>Label Title</label></div> 
<div class="editor-field"><input type="type"/></div 

但是我希望它不要做每個字段是這樣的:

<div class="editor-field"> 
    <label>Label Title</label> 
    <input type="type"/> 
</div> 

但是,如果我試圖做到這一點在編輯器中的模板,我得到這個:

<div class="editor-label"><label>Label Title</label></div> 
<div class="editor-field"> 
    <label>Label Title</label> 
    <input type="type"/> 
</div> 

我怎樣才能讓EditorForModel()不是自己的標籤字段?我知道我總是可以將它設置爲隱藏在CSS中,但如果它不在那裏,那麼它會很好,所以我可以限制代碼混淆。

在此先感謝。

PS:我也試過使用[HiddenInput(DisplayValue = false)],但這只是隱藏了整個字段而不僅僅是標籤。

回答

1

你需要在你的編輯模板CSHTML寫這得到它按預期工作:

@foreach (var property in ViewData.ModelMetadata.Properties) 
{ 
    <div class="editor-field"> 
     <label>@property.GetDisplayName()</label> 
     @Html.Editor(property.PropertyName) 
    </div> 
} 
+0

我把這個在string.cshtml和它做它每串這個多次跑了一個非常奇怪的事情屬性。它是否需要進入它自己的模型編輯器模板而不是類型編輯器模板。 例如,我的模型有4個字符串屬性和2個整數屬性。此代碼是否進入ModelName.cshtml或String.cshtml? –

+0

如果你有一個特定的模型,然後創建模型'[TypeName] .chstml'編輯器模板。如果它是通用的,則在同一個文件夾中創建「Object.cshtml」模板。在你看來,你應該只調用'@ Html.EditorForModel()'來完成它的工作。 – CodeNotFound

+0

該模板必須位於EditorTemplates文件夾中。 – CodeNotFound