Passing List of objects via querystring to MVC Controller

后端 未结 3 2027
一生所求
一生所求 2021-02-15 14:18

I\'ve got a situation where I need to pass a List of objects to an MVC Controller, but I\'m not sure how to format this in the querystring. The reason I would want to do this i

相关标签:
3条回答
  • 2021-02-15 15:02

    You may find the following blog post useful for the wire format of lists you need to use if you want the default model binder to successfully parse the request into a strongly typed array of objects. Example of query string:

    [0].Title=foo&[0].Author=bar&[1].Title=baz&[1].Author=pub...
    

    where:

    public class Book
    {
        public string Title { get; set; }
        public string Author { get; set; }
    }
    

    will successfully bind to:

    public ActionResult MyMethod(IEnumerable<Book> books) { ... }
    
    0 讨论(0)
  • 2021-02-15 15:05

    I've found that the JsonValueProvider works much better than the normal ValueProvider for binding to a list. Simply convert your data to a JSON object like so:

    <YourRoute>?ParamList=[{SomeProperty:'Value'},{SomeProperty:'Value'}];
    

    And the JsonValueProvider will take care of the rest. This is assuming you have the ability to say "post this data as Json".

    I also disclaim whether or not this would be a good idea.

    0 讨论(0)
  • 2021-02-15 15:09

    Ok, based on the information provided I don't think you want what you think you want. In your case on the client you POST the data to the controller. Not use a querystring.

    ok since you have to use querystring. my new answer: serialize object, convert it to base64 string and pass it, then convert it back.

    0 讨论(0)
提交回复
热议问题