RenderPartial не работает - PullRequest
1 голос
/ 01 июля 2011

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

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

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

Ответы [ 2 ]

4 голосов
/ 01 июля 2011

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

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

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

0 голосов
/ 01 июля 2011

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

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

Тогда, по вашему мнению, вы получите

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