Рендерпартиал не работает

У меня есть простое частичное представление, которое возвращает (отображает) список синонимов данного слова. Затем я хотел бы использовать это частичное представление внутри другого представления, и я использую @Html.RenderPartial("SynonymFinder", new { word = "Something" }) внутри своего представления. Но я получаю эту ошибку:

CS1502: лучшее совпадение перегруженного метода для «System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)» имеет некоторые недопустимые аргументы.

Это самый простой сценарий. Я даже убрал параметры и использовал @Html.RenderPartial("SynonymFinder"), но все та же проблема. Что случилось?


person Saeed Neamati    schedule 01.07.2011    source источник
comment
Для получения дополнительной информации о различиях между Partial и RenderPartial см. этот ответ. stackoverflow.com/questions/5248183/   -  person Mark Coleman    schedule 01.07.2011


Ответы (2)


В MVC 3 вы должны использовать:

@Html.Partial("SynonymFinder", new ViewDataDictionary { { word = "Something" } })

Обратите внимание, что второй параметр имеет тип ViewDataDictionary. Если вы не передадите его явно таким образом, помощник будет использовать перегрузку, которая принимает object в качестве второго параметра и использует его как модель, а не как значения маршрута.

person Sergi Papaseit    schedule 01.07.2011

Вам нужно создать модель с полем word

public class SynonymFinderModel
{
    public string Word {get; set;}
}

Тогда, на ваш взгляд, у вас есть

@Html.Partial("SynonymFinder", new SynonymFinderModel { Word = "something"})
person mccow002    schedule 01.07.2011