将表单发布到ASP.NET Core MVC中的控制器不起作用

纳西尔·保利诺(Nathiel Paulino)

我试图以与以前使用ASP.NET MVC 5相同的方式将表单过帐到我的控制器,但无法正常工作。

控制器:

[HttpGet]
public IActionResult Login()
{
    return View();
}

[HttpPost]
public async Task<IActionResult> Login([FromBody] Login LoginModel)
{
    return View();
} 

和HTML

<form asp-action="Login" asp-controller="Home" method="post" class="mt-4">
    <div class="row">
        <div class="col-lg-12">
            <div class="form-group">
                <label class="text-dark" for="uname">E-mail</label>
                <input class="form-control" id="uname" type="text"
                       placeholder="digite e-mail">
            </div>
        </div>
        <div class="col-lg-12">
            <div class="form-group">
                <label class="text-dark" for="pwd">Senha</label>
                <input class="form-control" id="pwd" type="password"
                       placeholder="digite sua senha">
            </div>
        </div>
        <div class="col-lg-12 text-center">
            <button  type="submit" class="btn btn-block btn-dark" />
        </div>
    </div>
</form>

我试图使用帮助器:

@using (Html.BeginForm("Login", "Login", FormMethod.Post))
{
}

但是生成的HTML不会通过控制器路径:

在此处输入图片说明

启动文件

public void ConfigureServices(IServiceCollection services)
{
    services.AddRazorPages().AddRazorRuntimeCompilation();
    services.AddControllersWithViews();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseHttpsRedirection();
    app.UseStaticFiles();

    app.UseRouting();
    app.UseAuthorization();

    app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllerRoute(
                name: "default",
                pattern: "{controller=Home}/{action=Login}/{id?}");
        });
}
瑞安

它显示action="/"的,而不是action="/Home/Login"因为你已经设置默认路由的形式/Home/Login

app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Login}/{id?}");
    });

如果更改默认路由,它将正确显示。

我已经尝试过您的代码,问题出在您的模型绑定中。

首先,[FromBody]由于您是从表单而不是请求正文接收数据,因此需要删除

此外,您的表单无法正确发布数据,因为您没有为输入设置name属性或使用asp-for标签帮助程序来绑定输入的数据以根据操作参数进行建模。

最后,查看带有我的假设Login模型的完整演示

public class Login
{
    public string uname { get; set; }
    public string pwd { get; set; }
}

Login.cshtml(添加name等于Login模型属性名称的属性):

<form asp-action="Login" asp-controller="Home" method="post" class="mt-4">
    <div class="row">
        <div class="col-lg-12">
            <div class="form-group">
                <label class="text-dark" for="uname">E-mail</label>
                <input class="form-control" name="uname" id="uname" type="text"
                       placeholder="digite e-mail">
            </div>
        </div>
        <div class="col-lg-12">
            <div class="form-group">
                <label class="text-dark" for="pwd">Senha</label>
                <input class="form-control" name="pwd" id="pwd" type="password"
                       placeholder="digite sua senha">
            </div>
        </div>
        <div class="col-lg-12 text-center">
            <button type="submit" class="btn btn-block btn-dark" />
        </div>

    </div>
</form>

开机自检操作:

[HttpPost]
public async Task<IActionResult> Login(Login LoginModel)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

添加视图/控制器在ASP.Net Core中不起作用

来自分类Dev

ASP.NET MVC AJAX发布到控制器的操作不起作用

来自分类Dev

在ASP.NET Core MVC6中将文件和模型发布到控制器

来自分类Dev

if语句在控制器mvc 5 asp.net中不起作用

来自分类Dev

.NET Core 和 MVC 项目,api 控制器路由不起作用

来自分类Dev

使用BeginForm将表单数据发布到ASP.NET MVC API控制器

来自分类Dev

ASP.Net Core 3将JSON数组发布到控制器

来自分类Dev

Area的控制器操作中的自定义路由在ASP.NET MVC中不起作用

来自分类Dev

“包含”不起作用,控制器asp.net

来自分类Dev

一个控制器中的ASP.NET Core MVC 1.0多发布方法

来自分类Dev

当发布到ASP.NET Core中的控制器时,所有值均为null

来自分类Dev

将布尔值发布到ASP.NET Core 5控制器失败,导致“ true”但不是true

来自分类Dev

异常处理在异步/等待调用的 asp.net 控制器中不起作用

来自分类Dev

将数据从视图发布到ASP.Net MVC中的控制器

来自分类Dev

将 ASP.NET Core 2.0 API 发布到 .NET 4.6.x 以在 IIS 中托管

来自分类Dev

将 ASP.NET MVC Core 应用程序的 [部分] 发布到 Web 主机

来自分类Dev

如何将ASP.NET Core应用发布到ftp服务器

来自分类Dev

jQuery 发布到 ASP.NET Core 控制器的问题

来自分类Dev

无法将值从 angular 服务发布到 asp.net core angular 中的 Web API

来自分类Dev

将文件从ASP.NET MVC 4.6应用程序发布到ASP.NET Core Web API

来自分类Dev

在ASP.Net Core MVC控制器中访问提交按钮的数据属性?

来自分类Dev

如何获取ASP.NET Core MVC控制器中输入按钮的值?

来自分类Dev

在ASP.NET Core MVC中通过控制器从数据库读取信息

来自分类Dev

从ASP.NET Core MVC中的控制器返回Pdf文档

来自分类Dev

如何根据 ASP.NET Core MVC 中控制器上的属性解决依赖项

来自分类Dev

asp.net mvc core 2 脚手架生成控制器中的错误

来自分类Dev

在Azure上部署时,区域路由在ASP.NET Core MVC中不起作用

来自分类Dev

更改“applicationUrl”后,ASP .Net Core MVC 路由在 Visual Studio 2017 中不起作用

来自分类Dev

ASP.NET 5 / MVC 6 Ajax将模型发布到控制器

Related 相关文章

  1. 1

    添加视图/控制器在ASP.Net Core中不起作用

  2. 2

    ASP.NET MVC AJAX发布到控制器的操作不起作用

  3. 3

    在ASP.NET Core MVC6中将文件和模型发布到控制器

  4. 4

    if语句在控制器mvc 5 asp.net中不起作用

  5. 5

    .NET Core 和 MVC 项目,api 控制器路由不起作用

  6. 6

    使用BeginForm将表单数据发布到ASP.NET MVC API控制器

  7. 7

    ASP.Net Core 3将JSON数组发布到控制器

  8. 8

    Area的控制器操作中的自定义路由在ASP.NET MVC中不起作用

  9. 9

    “包含”不起作用,控制器asp.net

  10. 10

    一个控制器中的ASP.NET Core MVC 1.0多发布方法

  11. 11

    当发布到ASP.NET Core中的控制器时,所有值均为null

  12. 12

    将布尔值发布到ASP.NET Core 5控制器失败,导致“ true”但不是true

  13. 13

    异常处理在异步/等待调用的 asp.net 控制器中不起作用

  14. 14

    将数据从视图发布到ASP.Net MVC中的控制器

  15. 15

    将 ASP.NET Core 2.0 API 发布到 .NET 4.6.x 以在 IIS 中托管

  16. 16

    将 ASP.NET MVC Core 应用程序的 [部分] 发布到 Web 主机

  17. 17

    如何将ASP.NET Core应用发布到ftp服务器

  18. 18

    jQuery 发布到 ASP.NET Core 控制器的问题

  19. 19

    无法将值从 angular 服务发布到 asp.net core angular 中的 Web API

  20. 20

    将文件从ASP.NET MVC 4.6应用程序发布到ASP.NET Core Web API

  21. 21

    在ASP.Net Core MVC控制器中访问提交按钮的数据属性?

  22. 22

    如何获取ASP.NET Core MVC控制器中输入按钮的值?

  23. 23

    在ASP.NET Core MVC中通过控制器从数据库读取信息

  24. 24

    从ASP.NET Core MVC中的控制器返回Pdf文档

  25. 25

    如何根据 ASP.NET Core MVC 中控制器上的属性解决依赖项

  26. 26

    asp.net mvc core 2 脚手架生成控制器中的错误

  27. 27

    在Azure上部署时,区域路由在ASP.NET Core MVC中不起作用

  28. 28

    更改“applicationUrl”后,ASP .Net Core MVC 路由在 Visual Studio 2017 中不起作用

  29. 29

    ASP.NET 5 / MVC 6 Ajax将模型发布到控制器

热门标签

归档