c# - 表单提交没有数据绑定(bind)

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

我正在将 ASP.NET 5 应用程序迁移到 ASP.NET Core。除了无法提交表格外,一切都很顺利。

当我这样做时,查看 Chrome 的网络时间轴,到达 Controller URL (/MyController/Create) 但没有任何反应(浏览器处于空闲状态,正在等待)。

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

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

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

这是我的 Controller 代码:

[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

提前致谢:)

最佳答案

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

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

仅此而已!对我来说,它有效 :D

关于c# - 表单提交没有数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37485123/

相关文章:

c# - 改变 OleDb 性能?

c# - .Net 中的并行性是否可以接管 CPU 并可能拒绝为其他进程提供服务?

asp.net - 在asp.net中将数据从excel表导入到mysql数据库

jquery - JQuery 中的动态数字

c# - 需要 Paypal 订阅才能创建帐户 - ASP.Net/MVC4/C#/Razor

c# - 在数据库asp.net mvc中保存动态创建的控件数据

c# - 在谷歌地图上绘制多个标记

c# - 我应该如何使用多线程正确调用 Web 浏览器?

asp.net - chrome 和 firefox 中的 urdu 字体差异

asp.net-mvc - 如何隐藏 Bootstrap 表中的列?