2016-10-05 67 views
0

我想要將所有模型用於特定搜索到一個通用搜索視圖。使用變量屬性名稱與剃刀MVC

我只需要一些呈現模型中的字段,或者與類似的措施:(Psudo代碼)

foreach (string textBoxFieldName in TextBoxFieldNames) 
    { 
     Html.Toolbox_TextBoxFor(m => m.textBoxFieldName) 
    } 

或具有對模型的屬性和檢查時屬性適用例如在模型 我有這樣的事情:

[AppliedCases("Case1","Case4","Case77")] 
[ControlToUse("TextBoxFor")] 
public string LastName { get; set; } 

有的在視圖怎麼就能走線槽所有屬性檢查,如果CurrentCase是Model屬性的,如果AppliedCases之一因此然後用剃刀魔法相應地顯示它

我的問題是正確的做法,如果讓我怎麼實現它,尋找具有動態渲染一些例子(如果是這個主題的名稱)

回答

1

你可以使用Html.Editor的重載,它取得道具的名稱(作爲字符串) erty要渲染:

var fieldNames = new string[] {"LastName"}; 
foreach (string fieldName in fieldNames) { 
    @Html.Editor(fieldName) 
} 

可以使用UIHint屬性在視圖模型來影響其編輯模板將用於:

[UIHint("MySpecialStringEditor")] 
public string LastName { get; set; } 

在我工作的店,我們不使用此做法。相反,我們使用相同ViewModel的不同顯式視圖。這允許更多的靈活性並且更容易理解和維護。