Я не хочу передавать данные от каждого метода в отдельности, это займет много времени, и незначительное изменение бизнес-правила может привести к сбою приложения, так как кто-то должен перейти ко всем этим методам и обновить их один за другим. Вместо этого у меня есть один метод count, который переносит те же данные для всех других методов, и он должен как-то интегрироваться со всеми остальными видами бритвы.
отаю над основным приложением.
Это основной контроллер:
public ActionResult Index()
{
var all = _context.mainz.ToList();
var vm = new mainViewModel()
{
main_lst = all
};
return View(vm);
}
public ActionResult Details()
{
var dtl = _context.mainz.ToList();
var vm = new mainViewModel()
{
main_lst = dtl
};
return View(vm);
}
public ActionResult count()
{
var ct = (from i in _context.mainz
where i.event_title != null
select i).ToList();
var vm = new countVm()
{
count = ct
};
return View(vm);
}
В этом контроллере методы Index и Details связаны с двумя различными видами бритвы следующим образом:
Это бритва для индекса
@model testtt.ViewModel.mainViewModel
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<ul>
@foreach (var item in Model.main_lst)
{
<li>@item.event_title</li>
}
</ul>
Это бритва для деталей
@model testtt.ViewModel.mainViewModel
@{
ViewBag.Title = "Details";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<ul>
@foreach (var item in Model.main_lst)
{
<li>@item.event_description</li>
}
</ul>
Это mainViewModel
namespace testtt.ViewModel
{
public class mainViewModel
{
public List<main> main_lst { get; set; }
public mainViewModel()
{
main_lst = new List<main>();
}
}
}
Теперь в главном контроллере выше, если вы заметили, у меня есть третий метод count, который связан с частичным представлением следующим образом:
@model testtt.ViewModel.countVm
<p>count is @Model.count.Count()</p>
И countVm или (модель представления счета) выглядит следующим образом:
namespace testtt.ViewModel
{
public class countVm
{
public List<main> count { get; set; }
public countVm()
{
count = new List<main>();
}
}
}
До этого момента все работало нормально. Теперь, в соответствии с требованиями приложения, я должен добавить это частичное представление для всех других видов бритвы следующим образом:
@Html.Partial("count")
Но когда я добавляю его в представления индекса или детали бритвы, он генерирует ошибку как:
The model item passed into the dictionary is of type 'testtt.ViewModel.mainViewModel', but this dictionary requires a model item of type 'testtt.ViewModel.countVm'.
Теперь предположим, что у этого метода подсчета есть некоторые идентичные данные, которые должны быть переданы всем остальным видам бритвы, но не отдельно, потому что отдельная передача будет занимать много времени, и предположим, что завтра по любой причине, если логика будет обновлена, тогда я должен перейти к каждому и каждый метод в отдельности и должен обновлять их соответственно, что невозможно, если мы предполагаем более 100 методов.
Короче говоря, я ищу способ извлечения данных из двух моделей представлений в одном виде бритвы?