C# MVC Как инициализировать ViewDataDictionary с TemplateInfo и KeyValuePairs - PullRequest
1 голос
/ 24 января 2020

Я могу инициализировать ViewDataDictionary с Keys и Values или свойством с именем TemplateInfo, но не обоими.

Либо это работает

Html.RenderPartial("~/Views/_myPartial1.cshtml", Model, new ViewDataDictionary
{
    TemplateInfo = new TemplateInfo { HtmlFieldPrefix = "myForm_" }
});

, либо это работает

Html.RenderPartial("~/Views/_myPartial1.cshtml", Model, new ViewDataDictionary
{
    { "ButtonText", "Hello!" }
});

Но не оба

Html.RenderPartial("~/Views/_myPartial1.cshtml", Model, new ViewDataDictionary
{
    TemplateInfo = new TemplateInfo { HtmlFieldPrefix = "myForm_" },
    { "ButtonText", "Hello!" }
});

Я получаю ошибку --- "Invalid initializer member declarator"

Я предполагаю, что это может относиться к другим типам Dictionary / KeyValuePair подклассов, поэтому, возможно, более общая форма этого вопроса будет ...

"Есть ли кратчайший способ инициализации подкласса словаря с его членами и дополнительными свойствами?
Если нет, то какие-нибудь простые альтернативы? "

Мы все еще в работе. Net 4.5 на работе, поэтому у меня может не быть доступа к последним улучшениям в C#.

1 Ответ

1 голос
/ 24 января 2020

Вам это помогает?

var dict = new ViewDataDictionary
{
    { "ButtonText", "Hello!" }
};
dict.TemplateInfo = new TemplateInfo { HtmlFieldPrefix = "myForm_" };

Html.RenderPartial("~/Views/_myPartial1.cshtml", Model, dict);
...