#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