gpt4 book ai didi

javascript - 如何读取MVC集合中的序列化数据(通过Jquery POST发送)

转载 作者:行者123 更新时间:2023-12-03 12:22:42 27 4
gpt4 key购买 nike

我有一个表单,单击一次提交按钮,我序列化我的表单并将其发送到 MVC 操作。

Jquery代码

           var formCollection = $('form').serialize();
var path = $(this).attr('data-content-url');

// check if no more error
$.ajax({
type: 'POST',
url: path,
cache: false,
data: { collection: formCollection },
datatype: 'json',
success: function (data) {
// do stuff
}
});

MVC 端

    [HttpPost]
public ActionResult MethodName( FormCollection collection )
{
}

我确实将集合变量中的数据序列化为

name=test&id=1 as collection[0]

我怎样才能打破这个集合[0],以便这个nameid可以直接分配给类参数,比如

Person p = new person { collection["name"], collection["id"] }

非常感谢

最佳答案

这有效,创建一个新的帮助器类,它按照您通常的预期转换 formcollection 中的序列化数据

private FormCollection DeSerialize(FormCollection form)
{
FormCollection collection = new FormCollection();
//un-encode, and add spaces back in
string querystring = Uri.UnescapeDataString(form[0]).Replace("+", " ");
var split = querystring.Split(new [] {'&'}, StringSplitOptions.RemoveEmptyEntries);
Dictionary<string, string> items = new Dictionary<string, string>();
foreach (string s in split)
{
string text = s.Substring(0, s.IndexOf("="));
string value = s.Substring(s.IndexOf("=")+1);

if (items.Keys.Contains(text))
items[text] = items[text] + "," + value;
else
items.Add(text, value);
}
foreach (var i in items)
{
collection.Add(i.Key, i.Value);
}
return collection;
}

关于javascript - 如何读取MVC集合中的序列化数据(通过Jquery POST发送),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24362984/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com