Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#MVC如何使用TemplateInfo和KeyValuePairs初始化ViewDataDictionary_C#_Asp.net Mvc_Dictionary_Asp.net Mvc 4_Asp.net Mvc 3 - Fatal编程技术网

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_”})