Как визуализировать 2 или более наборов данных с помощью .net MVC

#c# #asp.net-mvc

#c# #asp.net-mvc

Вопрос:

У меня есть 3 набора данных, которые я хотел бы отобразить в представлении. Я видел несколько примеров визуализации одного, но не двух.

Можно поместить наборы данных в коллекцию ViewData, но тогда они больше не являются «наборами данных» при доступе к ним в veiw.

Спасибо.

Комментарии:

1. Вы можете преобразовать их в наборы данных в представлении

2. ViewData — это отвратительно. Использование ViewModel означает, что все строго типизировано и проще в обслуживании.

Ответ №1:

ViewData — это немного хакерский процесс, которым легко злоупотреблять.

Вы должны создать ViewModel и разместить их там. Заполните модель в контроллере, затем передайте ее в представление.

Модель

 public class MyPageModel
{
    public DataSet data1 { get; set; }
    public DataSet data2 { get; set; }
}
  

Вид

 <%@ Page Title="" Language="C#" MasterPageFile="~/whatever.master" Inherits="System.Web.Mvc.ViewPage<MyNamespace.MyPageModel>" %>

<%: foreach (var row in Model.data1.Tables[0].Rows) { blah blah blah } %>
<%: foreach (var row in Model.data2.Tables[0].Rows) { blah blah blah } %>
  

КОНТРОЛЛЕР

 public ActionResult MyPage()
{
    var model = new MyPageModel();

    // Fill model.data1 here....
    // Fill model.data2 here....

    return View(model);
}
  

Комментарии:

1. если у вас n наборов данных, используйте свойство типа List<DataSet> или Dictionary<строка, набор данных> вместо data1 и data2