C#MVC如何使用TemplateInfo和KeyValuePairs初始化ViewDataDictionary
我可以使用C#MVC如何使用TemplateInfo和KeyValuePairs初始化ViewDataDictionary,c#,asp.net-mvc,dictionary,asp.net-mvc-4,asp.net-mvc-3,C#,Asp.net Mvc,Dictionary,Asp.net Mvc 4,Asp.net Mvc 3,我可以使用键和值或名为TemplateInfo的属性初始化ViewDataDictionary,但不能同时使用这两种属性 要么这样行 Html.RenderPartial("~/Views/_myPartial1.cshtml", Model, new ViewDataDictionary { TemplateInfo = new TemplateInfo { HtmlFieldPrefix = "myForm_" } }); Html.RenderPartial("~/Views/_
键和值或名为TemplateInfo
的属性初始化ViewDataDictionary
,但不能同时使用这两种属性
要么这样行
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_" }
});
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!" }
});
我收到一个错误--“无效的初始值设定项成员声明符”
我猜这可能适用于其他类型的Dictionary/KeyValuePair
子类,所以这个问题更一般的形式可能是
“是否有一种快捷方式可以初始化字典的子类及其成员和附加属性?
如果没有,那么还有什么简单的选择?”
我们仍在使用.NET4.5,因此我可能无法访问C#的最新改进 这对你有帮助吗
var dict = new ViewDataDictionary
{
{ "ButtonText", "Hello!" }
};
dict.TemplateInfo = new TemplateInfo { HtmlFieldPrefix = "myForm_" };
Html.RenderPartial("~/Views/_myPartial1.cshtml", Model, dict);
谢谢它起作用了。我想知道是否有一种单行的方法,你可以创建一个扩展方法publicstaticviewdatadictionary SetTemplateInfo(这个ViewDataDictionary dict,TemplateInfo ti)
然后像这样初始化你的对象:Html.RenderPartial(~/Views/_myPartial1.cshtml),Model,newviewdatadictionary{{{“buttonext”,“Hello!”}.SetTemplateInfo(新的TemplateInfo{HtmlFieldPrefix=“myForm_”})代码>