Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do you initialize a FormCollection with properties in .NET?

I've tried the usual way of:

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

and all possible deviations I could think of, but ultimately had to seperate it apart as:

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

How can I initialize this inline? Is it possible? (I'm basically trying to mimic a form being submitted)

like image 704
LaRae White Avatar asked Mar 18 '14 18:03

LaRae White


2 Answers

If you're using ASP.NET MVC (not core), you can initialize System.Web.Mvc.FormCollection like this:

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

Demo in .NET Fiddle

But I'm not the right computer to test this. I'm basing this on the .Add method of FormCollection begin declared as:

public virtual void Add(
    string name,
    string value
)

What types are the filter variables declared as?

like image 68
William Leader Avatar answered Oct 28 '22 07:10

William Leader


If you're using Microsoft.AspNetCore.Http.FormCollection in aspnet core, you can initialize like this:

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

Demo in .NET Fiddle

Then, if you need to create a controller with test data, you can pass to the controller create method like this:

// Call create controller with test data
_controller.Create(formCol);
like image 25
Phil Huhn Avatar answered Oct 28 '22 08:10

Phil Huhn