У меня есть представление, которое не со строгим контролем типов. Однако у меня есть в этом представлении частичное представление, которое со строгим контролем типов.
Как я делаю, я передаю модель этому представлению со строгим контролем типов?
Я попробовал что-то как
public ActionResult Test()
{
MyData = new Data();
MyData.One = 1;
return View("Test",MyData)
}
В моем TestView
<% Html.RenderPartial("PartialView",Model); %>
Это дает мне stackoverflow исключение. Таким образом, я не уверен, как передать его. Конечно, я не хочу делать тестовое представление со строгим контролем типов, если это возможно, как, что происходит, если бы я имел как 10 частичных представлений со строгим контролем типов в том представлении, то мне было бы нужно как своего рода обертка.
Вы должны расширить вашу модель, чтобы она могла предоставлять все необходимые поля для представления (это называется ViewModel), или вы должны предоставить их отдельно с ViewData.
public ActionResult Test()
{
MyData = new Data();
MyData.One = 1;
ViewData["someData"]=MyData;
return View();
}
затем:
<% Html.RenderPartial("PartialView",ViewData["someData"]); %>
ViewData - это красивый, плохо типизированный словарь
Поместите объект, требуемый партиалом, в Viewdata и используйте ist в виде в качестве входных данных для партиала.
public ActionResult Test()
{
ViewData["DataForPartial"] = new PartialDataObject();
return View("Test")
}
В представлении используйте:
<% Html.RenderPartial("PartialView",ViewData["DataForPartial"]); %>
Но в любом случае: нет никаких причин для отказа от строго типизированного представления.