Создание частичного представления с помощью Razor - PullRequest
1 голос
/ 26 октября 2011

У меня есть мастер-страница, которая использует модель @ model.topics, я создал частичное представление, которое использует модель @ model.ContactUsModel, и я отображаю это представление на моей главной странице, но возникает ошибка:Элемент модели, передаваемый в словарь, имеет тип «Nop.Web.Models.Common.topics», но для этого словаря требуется элемент модели типа «Nop.Web.Models.ContactUsModel».частичное представление с использованием:

 @Html.Partial("Contact")

Любые предложения или советы, что я делаю здесь не так

Ответы [ 2 ]

2 голосов
/ 26 октября 2011

Частично просто сделать вид.Действие вызывает контроллер, и он отображает представление.Поэтому, если вашему представлению нужен какой-либо код, предоставленный контроллером (например, ViewBag), вам нужно вызвать Action ().В противном случае вызовите View ().

2 голосов
/ 26 октября 2011

Попробуйте использовать

@Html.Action("Contact")

Действие должно вернуть PartialView, чтобы это сработало. Затем вы можете отрендерить его с нужной моделью

public ActionResult Contact()
{
   blabla, some code
   return PartialView(myContactUsModelObject);
}

@Html.Partial() отображает частичное представление.
не вызывает действие в контроллере .
Вы все еще можете дать модель с этим методом, как это: @Html.Partial("Contact",someObject)
Если вы не предоставите модель с ней, модель страницы будет предоставлена ​​по умолчанию.
и вот что случилось с вашим кодом

@Html.Action() вызывает действие в контроллере .
И тогда дело за тем, чтобы дать результат любого рода.

Надеюсь, это поможет

...