2014-10-30 4 views
1

Общепринятой практикой является то, что модели в asp.net mvc x могут создавать/создавать/возвращать html-разметку?Asp.Net MVC: Если модель создает Html-Markup

Модель класса:

public interface IMyModel { 

    MvcHtmlString GetGrid(string gridId, HtmlHelper htmlHelper); 
} 


public class MyModel<TRowModel> : IMyModel { 

    IList<TModel> GridItems{get;set;} 

    public MvcHtmlString GetGrid(string gridId, HtmlHelper helper){ 

      WebGrid<TRowModel> webGrid = new WebGrid<TRowModel>(gridId, GridItems) 
      return webGrid.GetHtml(helper); 
    } 
} 

Вид:

@model IMyModel 

@Model.GetGrid("grid", Html) 
+0

В некоторых случаях я бы сказал, что нет проблемы с созданием HTML через модель. В этом случае мне кажется, что вы просто создаете сетку и что она не имеет ничего общего с «моделью». Метод GetGrid лучше всего будет использовать (статический?) Вспомогательный класс. –

+0

Извините, я забыл часть со списком элементов для показа в сетке. Вот почему он не работал с html-помощником (я думаю). – Tobias

+0

Ваш взгляд должен создавать HTML, а не модель. – janhartmann

ответ

2

В соответствии с MVC шаблон, модель должна быть немым и должны действовать больше как объект, содержащий бизнес-домен. Технически можно отправлять данные как HTML в Model, но в идеале должно быть обязательным представление для отправки HTML-разметки ... Модель будет вставлять данные в эту разметку HTML.

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