如何在 .Net Core MVC 中发布

Posted

技术标签:

【中文标题】如何在 .Net Core MVC 中发布【英文标题】:How to POST in .Net Core MVC 【发布时间】:2021-04-09 06:13:03 【问题描述】:

我有一个带有用户名和密码输入的登录页面,还有一个提交按钮。我想在我的控制器中调用一个方法来检查数据是否匹配并显示结果。我如何调用该方法?我尝试了以下方法,但没有成功,它将这些作为参数传递

        @using (html.BeginForm("Logmein", "LoginController", FormMethod.Post))
    
        <form method="post">
            <div class="input-group mt-3">
                <div class="input-group-prepend">
                </div>
                <input type="text" class="form-control" placeholder="Username" asp-for="Userusername">
            </div>

            <div id="login_usernametxt" class="input-group mt-2">

                <input id="login_passwordtxt" type="password" class="form-control" placeholder="Password" asp-for="Userpassword">
            </div>

            <button id="login_signinbtn" class="mt-3 btn bg-warning text-light" style="float: right;" formmethod="post">Sign in</button>

        </form>
    

这是我的控制器。

    public class LoginController : Controller

    public LoginInfo Logininformation  get; set; 

    
    public IActionResult Userlogin()
    
        return View();
    

    [HttpPost]
    public IActionResult Logmein()
    
        //checks if the data matches.... 
        return RedirectToPage("/Home/Index");
    

【问题讨论】:

【参考方案1】:

Tyr 在 Logmein() 方法中包含具有以下属性 Userusername,Userpassword 的模型

您还可以删除 html 辅助方法(@using (Html.BeginForm("Logmein", "LoginController", FormMethod.Post))) 例如:

<form method = "post" asp-controller = "Login" asp-action = "Logmein" >
            <div class="input-group mt-3">
                <div class="input-group-prepend">
                </div>
                <input type="text" class="form-control" placeholder="Username" asp-for="Userusername">
            </div>

            <div id="login_usernametxt" class="input-group mt-2">

                <input id="login_passwordtxt" type="password" class="form-control" placeholder="Password" asp-for="Userpassword">
            </div>

          
        <input type = "submit" value = "Login" /> 

        </form>
        

模型类

public class Login

   
    public string Userusername  get; set;  
     public string Userpassword   get; set;  

控制器方法:

[HttpPost]
    public IActionResult Logmein(LoginModel login)
    
        //checks if the data matches.... 
        return RedirectToPage("/Home/Index");
    

【讨论】:

谢谢它的工作。如果我需要调用一个有参数的方法怎么办?顺便说一句,我的控制器中需要 [http post] 吗?

以上是关于如何在 .Net Core MVC 中发布的主要内容,如果未能解决你的问题,请参考以下文章

如何让asp.net core mvc发布时候不编译cshtml视图

如何在 .NET Core MVC 项目中转换 appsettings.json?

如何使用 MVC 的内容协商在 ASP.NET Core MVC 中间件中返回响应?

如何从字节数组 c# MVC .NET Core 在 iframe 中显示 pdf

如何在 ASP.NET Core MVC 中获取 Url Referrer?

如何在.net core mvc中使用ModelState包装类分离业务逻辑层