首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建表单时ASP.NET核心2.2未处理的异常

创建表单时ASP.NET核心2.2未处理的异常
EN

Stack Overflow用户
提问于 2019-08-21 10:30:03
回答 2查看 87关注 0票数 0

我目前正在创建一个web应用程序,它接收一个新用户,将他们的信息添加到一个列表中,然后显示这些用户。当我使用带验证的表单(我以前在其他项目中使用过很多次的表单)的链接时,我得到了一个未处理的异常。

以下是具体的错误代码

代码语言:javascript
复制
    AspNetCore.Views_Home_RegisterNewUser.<ExecuteAsync>b__12_0() in RegisterNewUser.cshtml, line 15

到目前为止,我已经仔细检查了模型是否正确,并进行了正确的验证。我已经确认了控制器和动作是正确的。

这是该表单的页面

代码语言:javascript
复制
@{
    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

代码语言:javascript
复制
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视图中。

EN

回答 2

Stack Overflow用户

发布于 2019-08-21 15:22:22

<form asp-controller="Home" asp-action="RegisterNewUser" method="post" class="bg-dark"> </form>

您的表单post操作将在RegisterNewUser方法中,您在ListAllUsers中指向错误。

霍普,你明白了吗

票数 0
EN

Stack Overflow用户

发布于 2019-08-21 16:22:54

您的表单正在向控制器Home中的动作ListAlluser设置姿势。现在,根据您的代码,您没有该名称的操作方法。正确的asp-action参数应为RegisterNewUser。所以代码变成了

代码语言:javascript
复制
<form asp-controller="Home" asp-action="RegisterNewUser" method="post" class="bg-dark">
</form>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57583704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档