如何在.net中初始化带有属性的FormCollection

本文关键字:属性 FormCollection 初始化 net | 更新日期: 2023-09-27 17:50:46

我已经尝试了通常的方法:

var form = new FormCollection { "WeekList" = weekfilter, "PracticeList" = practicefilter}

和我能想到的所有可能的偏差,但最终不得不将其分离为:

var form = new FormCollection();
form["WeekList"] = weekfilter;
form["PracticeList"] = practicefilter;

如何初始化这个内联?这可能吗?(我基本上试图模仿提交的表单)

如何在.net中初始化带有属性的FormCollection

如果你使用的是ASP。. NET MVC(不是core),你可以这样初始化System.Web.Mvc.FormCollection:

var form = new FormCollection {
    {"WeekList", weekfilter},
    {"PracticeList", practicefitler}
}
.NET Fiddle演示

但我不是测试这个的合适电脑。我基于FormCollection的.Add方法开始声明为:

public virtual void Add(
    string name,
    string value
)

过滤器变量声明为什么类型?

如果你在asp.net core中使用Microsoft.AspNetCore.Http.FormCollection,你可以这样初始化:

var formCol = new FormCollection(new Dictionary<string, Microsoft.Extensions.Primitives.StringValues>
{
    { "Field1", "String Value 1" },
    { "Field2", "String Value 2" },
    { "Field3", "String Value 3" }
});
.NET Fiddle演示

然后,如果你需要创建一个带有测试数据的控制器,你可以像这样传递给控制器创建方法:

// Call create controller with test data
_controller.Create(formCol);