我有一個Index.cshtml使用 Bootstrap 顯示通用登錄頁面的頁面。標記如下所示:
@model Accurecord_Direct.Models.Login.
@{
ViewData["Title"] = "Home Page";
Layout = "~/Views/Shared/_NoMenu.cshtml";
}
<body>
@using (Html.BeginForm("LogIn", "Home", FormMethod.Post))
{
<section class="vh-100" style="background-color: #508bfc;">
<div class="container py-5 h-100">
<div class="row d-flex justify-content-center align-items-center h-100">
<div class="col-12 col-md-8 col-lg-6 col-xl-5">
<div class="card shadow-2-strong" style="border-radius: 1rem;">
<div class="card-body p-5 text-center">
<h3 class="mb-5">Log in</h3>
<div class="form-outline mb-4">
<input type="text" id="UserID" class="form-control form-control-lg" />
<label class="form-label" for="UserID">User ID</label>
</div>
<div class="form-outline mb-4">
<input type="password" id="Password" class="form-control form-control-lg" />
<label class="form-label" for="Password">Password</label>
</div>
<button class="btn btn-primary btn-lg btn-block" type="submit">Login</button>
<hr class="my-4">
<button class="btn btn-lg btn-block btn-primary" style="background-color: #dd4b39;" type="submit" asp-action="ForgotUserID"><i class="fab fa-google me-2"></i> Forgot User ID</button>
<button class="btn btn-lg btn-block btn-primary mb-2" style="background-color: #3b5998;" type="submit" asp-action="ForgotPassword"><i class="fab fa-facebook-f me-2"></i>Forgot Password</button>
</div>
</div>
</div>
</div>
</div>
</section>
}
</body>
我的模型看起來像這樣:
using System;
namespace Accurecord_Direct.Models
{
public class Login
{
public string UserID { get; set; }
public string Password { get; set; }
}
}
我的任何控制器看起來像這樣:
public IActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult LogIn(IFormCollection form, [FromForm] Login newLogin)
{
return RedirectToAction("Index");
}
[HttpPost]
[Route("ForgotUserID")]
public IActionResult ForgotUserID()
{
return View("ForgotUserID");
}
[HttpPost]
[Route("ForgotPassword")]
public IActionResult ForgotPassword()
{
return View("ForgotPassword");
}
我LogIn在控制器的action 方法的回傳處設定斷點來運行我的應用程式。當斷點被擊中時,我查看變數的監視視窗newLogin。當我展開變數時,我看到兩個屬性UserID和Password,但它們的值都為 (null)。我在點擊提交按鈕之前在表格中輸入字母。
為什么表單資料不會傳遞給控制器???
謝謝!
uj5u.com熱心網友回復:
修復動作
[HttpPost]
public ActionResult LogIn (Login newLogin)
{
return RedirectToAction("Index");
}
并為視圖輸入添加 asp-for
<div class="form-outline mb-4">
<input type="text" asp-for="UserId" class="form-control form-control-lg"/>
<label class="form-label" for="UserID">User ID</label>
</div>
<div class="form-outline mb-4">
<input type="password" asp-for=Password class="form-control form-control-lg" />
<label class="form-label" for="Password">Password</label>
</div>
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/379669.html
