我目前正在创建一个web应用程序,它接收一个新用户,将他们的信息添加到一个列表中,然后显示这些用户。当我使用带验证的表单(我以前在其他项目中使用过很多次的表单)的链接时,我得到了一个未处理的异常。
以下是具体的错误代码
AspNetCore.Views_Home_RegisterNewUser.<ExecuteAsync>b__12_0() in RegisterNewUser.cshtml, line 15到目前为止,我已经仔细检查了模型是否正确,并进行了正确的验证。我已经确认了控制器和动作是正确的。
这是该表单的页面
@{
ViewData["Title"] = "RegisterNewUser";
}
<h1>RegisterNewUser</h1>
@model Lab20.Models.RegisterUser
@Html.ValidationSummary()
<form asp-controller="Home" asp-action="ListAllUser" method="post" class="bg-dark">
<div class="col-12">
First Name:
<input type="text" name="FirstName" value="@Model.FirstName" placeholder="@Model.FirstName" class="col-5" />
@Html.ValidationMessageFor(m => m.FirstName)
</div>
<div class="col-12">
Last Name: <input type="text" name="Last Name" value="@Model.LastName" placeholder="@Model.LastName" class="col-5" />
@Html.ValidationMessageFor(m => m.LastName)
</div>
<div class="col-12">
Birthday: <input type="datetime" name="Birthday" value="@Model.Birthday" placeholder="@Model.Birthday" class="col-5" />
@Html.ValidationMessageFor(m => m.Birthday)
</div>
<div class="col-12">
Email: <input type="text" name="Email" value="@Model.Email" placeholder="@Model.Email" class="col-5" />
@Html.ValidationMessageFor(m => m.Email)
</div>
<div class="col-12">
Password: <input type="text" name="Password" value="@Model.Password" placeholder="@Model.Password" class="col-5" />
@Html.ValidationMessageFor(m => m.Password)
</div>
<div class="col-12">
Favorite Color: <input type="text" name="FavoriteColor" value="@Model.FavoriteColor" placeholder="@Model.FavoriteColor" class="col-5" />
@Html.ValidationMessageFor(m => m.FavoriteColor)
</div>
<input type="submit" value="Add User" />
</form>这是HomeController
public class HomeController : Controller
{
List<RegisterUser> listOfUsers = new List<RegisterUser>() { };
public IActionResult Index()
{
return View();
}
[HttpGet]
public IActionResult RegisterNewUser()
{
return View();
}
[HttpPost]
public IActionResult RegisterNewUser(RegisterUser newUser)
{
if (!ModelState.IsValid)
{
return View(newUser);
}
else
{
return View("AddNewUser", newUser);
}
}
public IActionResult AddNewUser(RegisterUser user)
{
listOfUsers.Add(user);
return View("Index");
}
public IActionResult ListAllUsers()
{
return View();
}
}我希望我的页面首先显示,其次,捕获我添加的验证,第三,获取新用户的信息并将其显示在ListAllUsers视图中。
发布于 2019-08-21 15:22:22
<form asp-controller="Home" asp-action="RegisterNewUser" method="post" class="bg-dark"> </form>
您的表单post操作将在RegisterNewUser方法中,您在ListAllUsers中指向错误。
霍普,你明白了吗
发布于 2019-08-21 16:22:54
您的表单正在向控制器Home中的动作ListAlluser设置姿势。现在,根据您的代码,您没有该名称的操作方法。正确的asp-action参数应为RegisterNewUser。所以代码变成了
<form asp-controller="Home" asp-action="RegisterNewUser" method="post" class="bg-dark">
</form>https://stackoverflow.com/questions/57583704
复制相似问题