2013-12-05 3 views
1

У меня есть модель, в которой много повторяющихся структур данных. Но я хочу показывать группы связанных данных одинаково. Например, у меня есть флажок рядом с текстовым полем, и если это текстовое поле было недавно отредактировано, с ним будет отображаться стрелка. Я не хочу писать один и тот же код снова и снова для тех же условий. Есть ли способ, которым я могу вызвать структуру представления и передать параметры, такие как 3 bools и строку, и затем он помещает их в правильный шаблон отображения html.Как в MVC я могу создать шаблон для данных по модели, но не всей модели?

я, использую MVC5 с C#

ответ

0

Конечно - вы должны быть в состоянии использовать шаблоны медийных и редактор шаблонов. Во-первых, определите, что вы можете абстрагироваться в автономную модель представления. Исходя из вашего вопроса, мы можем создать автономную модель представления с 2 булевыми свойствами и 1 строковым свойством.

public class PropertyGroup(){ 
    public bool Checked {get;set;} 
    public string Text {get;set;} 
    public bool RecentlyEditied{get;set;} 
} 

Создать папку в общей папке просмотров называемых EditorTemplates и поместить вид внутри этой папки с именем PropertyGroup (независимо от названия вашего класса ViewModel есть). Это было бы частичный вид и выглядеть как

@model Core.Models.ViewModels.PropertyGroup 
<div> 
    @Html.CheckBoxFor(x=>x.Checked) 
    @Html.TextBoxFor(x=>x.Text) 
    @if(Model.RecentlyEdited){ 
     <img src="arrow.gif" /> 
    } 
</div> 

Теперь, везде, где вы хотите, чтобы разметка появится, вы можете сделать это, называется Html.EditorFor() помощника и отправить его класса ViewModel.

@Html.EditorFor(x=>x.PropertyOfTypePropertyGroup) 
+0

Я смущен, как передать свои переменные другому виду? – Bob

Смежные вопросы