表单提交没有数据绑定

时间:2016-05-27 13:46:08

标签: c# asp.net asp.net-mvc asp.net-core

我正在将ASP.NET 5应用程序迁移到ASP.NET核心。除了我不能提交表格外,一切进展顺利。

当我这样做时,查看Chrome的网络时间线,到达控制器URL(/ MyController / Create)但没有任何反应(浏览器空闲,等待)。

在寻找一些解释之后:尝试调用无参数控制器工作正常。添加[FromForm]返回415. [FromData]空闲...

我在互联网上找不到任何东西。这里也! (这是我一生中的第一次)。

注意:使用ASP.NET 5 MVC 6一切正常。两边都有相同的代码。

这是我的控制器代码:

[HttpPost]
    [ValidateAntiForgeryToken]
    public async Task<IActionResult> Create(SocieteGroupe societeGroupe)
    {
        if (ModelState.IsValid)
        {
            _context.SocieteGroupe.Add(societeGroupe);
            await _context.SaveChangesAsync();
            return RedirectToAction("Index");
        }
        ViewData["Id_Devise"] = new SelectList(_context.Devise, "Id", "Code_ISO", societeGroupe.Id_Devise);
        return View(PackageUtils.GetViewPath(viewPath, OperationType.CREATE), societeGroupe);
    }

我的观点:

<form asp-controller="SocieteGroupes" asp-action="Create">
<div class="form-horizontal">
    <h4>SocieteGroupe</h4>
    <hr />
    <div asp-validation-summary="ModelOnly" class="text-danger"></div>
    <div class="form-group">
        <label asp-for="Id_Devise" class="col-md-2 control-label"></label>
        <div class="col-md-10">
            <select asp-for="Id_Devise" class ="form-control" asp-items="ViewBag.Id_Devise"></select>
        </div>
    </div>
    <div class="form-group">
        <label asp-for="Id_Salesforce" class="col-md-2 control-label"></label>
        <div class="col-md-10">
            <input asp-for="Id_Salesforce" class="form-control" />
            <span asp-validation-for="Id_Salesforce" class="text-danger" />
        </div>
    </div>
    <div class="form-group">
        <label asp-for="Nom" class="col-md-2 control-label"></label>
        <div class="col-md-10">
            <input asp-for="Nom" class="form-control" />
            <span asp-validation-for="Nom" class="text-danger" />
        </div>
    </div>
    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Create" class="btn btn-default" />
        </div>
    </div>
</div>

有人已经解决了这个问题或对此有所了解吗?

编辑:

而不是使用复杂类型作为参数。我尝试(出于调试目的)使用字符串代替并以Json格式返回字符串以进行调试。无论我使用什么(没有,[FromForm],[FromBody] ...),结果为空。我不知道接下来该做什么。任何帮助将不胜感激:D

提前致谢:)

1 个答案:

答案 0 :(得分:0)

我找到了解决方法。这是RC2的已知错误。

根据此link,您需要下载此file并将其放在项目中的任何位置。然后你只需要在Startup.cs中添加行services.AddSingleton<IModelBinderFactory, MyModelBinderFactory>();

这就是全部!对我来说,它有效:D