Как передать Модель от представления до частичного представления?

У меня есть представление, которое не со строгим контролем типов. Однако у меня есть в этом представлении частичное представление, которое со строгим контролем типов.

Как я делаю, я передаю модель этому представлению со строгим контролем типов?

Я попробовал что-то как

 public ActionResult Test()
        {
              MyData = new Data();
              MyData.One = 1;
              return View("Test",MyData)
        }

В моем TestView

<% Html.RenderPartial("PartialView",Model); %>

Это дает мне stackoverflow исключение. Таким образом, я не уверен, как передать его. Конечно, я не хочу делать тестовое представление со строгим контролем типов, если это возможно, как, что происходит, если бы я имел как 10 частичных представлений со строгим контролем типов в том представлении, то мне было бы нужно как своего рода обертка.

9
задан chobo2 5 May 2010 в 07:38
поделиться

2 ответа

Вы должны расширить вашу модель, чтобы она могла предоставлять все необходимые поля для представления (это называется ViewModel), или вы должны предоставить их отдельно с ViewData.

 public ActionResult Test()
        {
              MyData = new Data();
              MyData.One = 1;
              ViewData["someData"]=MyData;
              return View();
        }

затем:

<% Html.RenderPartial("PartialView",ViewData["someData"]); %>

ViewData - это красивый, плохо типизированный словарь

4
ответ дан 3 November 2019 в 07:46
поделиться

Поместите объект, требуемый партиалом, в Viewdata и используйте ist в виде в качестве входных данных для партиала.

public ActionResult Test()
        {
              ViewData["DataForPartial"] = new PartialDataObject();
              return View("Test")
        }

В представлении используйте:

<% Html.RenderPartial("PartialView",ViewData["DataForPartial"]); %>

Но в любом случае: нет никаких причин для отказа от строго типизированного представления.

0
ответ дан 3 November 2019 в 07:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: