Я создал частичное представление, которое я хотел бы использовать повторно на разных страницах моего сайта.
В настоящее время для каждой веб-страницы я создаю модель представления, в которой собрана вся информация, которую я хотел бы показать, а затем отправляю ее в представление, которое содержит 3 отдельных частичных представления. Вот упрощенный пример:
public ActionResult Index()
{
MyViewModel m = new MyViewModel();
MyViewModel modelData = m.GetModelData();
return View(modelData);
}
public MyViewModel GetModelData()
{
ModelData modelData = new ModelData();
modelData.employees = GetEmployees();
modelData.products = GetProducts();
modelData.prices = GetPrices();
return modelData
}
На моей веб-странице каждое частичное представление наследуется от одной и той же модели представления, что позволяет мне строго вводить каждое частичное представление:
Inherits="System.Web.Mvc.ViewUserControl<DomainModel.Entities.MyViewModel>
Моя проблема заключается в том, что я хотел бы использовать одно из моих частичных представлений ('Prices.ascx') на других веб-страницах, поскольку оно довольно общее. Однако, поскольку он наследуется от DomainModel.Entities.MyViewModel
, я получаю ошибку, если пытаюсь передать другую модель представления, например, CheckOutViewModel.
Я не уверен, как мне обойти эту проблему? Как использовать частичное представление в asp.net mvc 2, чтобы его можно было повторно использовать на любой веб-странице и принять любую модель представления?
Где-то по пути я чувствую, что упустил нечто очевидное ...