首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AJAX文章中没有填充ASP.NET MVC 6 FormCollection

AJAX文章中没有填充ASP.NET MVC 6 FormCollection
EN

Stack Overflow用户
提问于 2016-03-04 16:14:24
回答 4查看 3.8K关注 0票数 2

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

数据正被正确地发送到电线上:

控制器中方法的签名是:

代码语言:javascript
复制
public string processform(FormCollection formCollection)

我可以在此方法中设置一个断点,在提交表单数据时命中该断点,但formCollection对象为null。

考虑到这段代码在MVC的较低版本中工作得很好,我们是否需要在MVC 6中做一些不同的事情来实现它呢?

EN

回答 4

Stack Overflow用户

发布于 2016-03-04 16:38:50

根据问题:

MVC 6不支持(尚未) FormCollection作为参数

您可以使用以下两种方法来完成:

  1. 按照此文章读取值异步
  2. 创建您自己的模型绑定器,请参阅这里
票数 1
EN

Stack Overflow用户

发布于 2016-03-05 11:19:11

Zaki的帖子让我找到了一条线索,最后我得到了一条行之有效的代码:

代码语言:javascript
复制
    [ValidateAntiForgeryToken]
    [HttpPost]
    [AllowAnonymous]
    public async Task<string> processform()
        {
        var objFormCollection = await HttpContext.Request.ReadFormAsync();
        ...
        }

尽管随着ASP.NET 5/Core1.0MVC 6等的快速变化,事情可能会再次发生变化。

票数 1
EN

Stack Overflow用户

发布于 2016-11-29 13:13:08

我使用HttpContext读取表单数据和任何附加在表单上的文件,这些文件正在被提交。例如:

代码语言:javascript
复制
    [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中的一个键。我希望这对你有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35800809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档