pass dictionary to controller asp.net mvc

前端 未结 3 1638
臣服心动
臣服心动 2020-12-15 05:39

I am wanting to pass a dictionary of type to my controller via an Ajax post. The main reason here is the post may have between 1-3 key value pai

3条回答
  •  臣服心动
    2020-12-15 05:53

    Client (JavaScript):

    var dict = new Object();
    dict.Key1 = "Value1"
    dict.Key2 = "Value2"
    
    $.post('/YourController/YourAction/', dict);
    

    NOTE: The "dict" objects gets serialized behind the scenes before being sent to your action.

    Server:

    public ActionResult YourAction()
    {
        string postData = string.Empty;
        using (StreamReader sr = new StreamReader(Request.InputStream))
        {
            postData = sr.ReadToEnd();
        }    
    
        //Load post data into JObject (Newtonsoft.Json)
        JObject o = JObject.Parse(postData);
    
        //Extract each key/val 
        string val1 = (string)o["Key1"];
    
        //Do whatever....
    }
    

提交回复
热议问题