我正在从MVC 5中将一个项目升级到MVC 6,并且发现FormCollection没有被填充(即返回一个空值)并使用AJAX帖子中的数据。
数据正被正确地发送到电线上:

控制器中方法的签名是:
public string processform(FormCollection formCollection)我可以在此方法中设置一个断点,在提交表单数据时命中该断点,但formCollection对象为null。
考虑到这段代码在MVC的较低版本中工作得很好,我们是否需要在MVC 6中做一些不同的事情来实现它呢?
发布于 2016-03-04 16:38:50
发布于 2016-03-05 11:19:11
Zaki的帖子让我找到了一条线索,最后我得到了一条行之有效的代码:
[ValidateAntiForgeryToken]
[HttpPost]
[AllowAnonymous]
public async Task<string> processform()
{
var objFormCollection = await HttpContext.Request.ReadFormAsync();
...
}尽管随着ASP.NET 5/Core1.0MVC 6等的快速变化,事情可能会再次发生变化。
发布于 2016-11-29 13:13:08
我使用HttpContext读取表单数据和任何附加在表单上的文件,这些文件正在被提交。例如:
[HttpPost]
public void EditProperty()
{
var isFeatured = HttpContext.Request.Form["isFeatured"];
var files = HttpContext.Request.Form.Files;
foreach (var file in files)
{
if (file.Length > 0)
{
System.Console.WriteLine(file.FileName);
System.Console.WriteLine("This file is featured:" + isFeatured.ToString());
}
}
}在上面的示例中,"isFeatured“是我使用jquery添加到formData中的一个键。我希望这对你有帮助。
https://stackoverflow.com/questions/35800809
复制相似问题