Для меня, если частичное представление (.ascx или usercontrol в формах asp.net) содержит много динамического содержимого, я сделаю это строго типизированным представлением.Это означает, что у него есть своя модель.В зависимости от его удобства использования.Но я настоятельно рекомендую сделать каждое представление соответствующей моделью.
Например, в этой ситуации у вас есть частичное представление с моделью Address
частичное представление
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Address>" %>
Address Name: <%=Model.AddressName %>
Address Location: <%=Model.AddressLocation %>
Модель
public class Address
{
public string AddressName {get;set;}
public string AddressLocation {get;set;}
}
И я хочу использовать этот частичный вид в зависимости от используемой страницы.Может быть пользователь логина или пользователь друзей.Я бы просто назвал соответствующее действие в контроллере.
Скажем, я поместил его в CommonController
public class CommonController : Controller
{
ModelRepository modelRepository = new ModelRepository();
public PartialViewResult AddressPartialView(int id)
{
var address = modelRepository.GetAddress(id);
return View("AddressPartialView", address);
}
}
В этом случае я могу вызвать это частичное представление в любой части.любой страницы
<%= Html.Action("AddressPartialView", "Common", new { id = Model.AddressId })%>
, если предположить, что в моем представлении, которое я вызывал для частичного представления, есть модель пользователя со свойством AddressId
.Таким образом, я могу использовать и повторно использовать частичное представление на одной странице, каждая из которых имеет разный контент.