C# MVC .Net Core Form,强类型化的Form,无法使用(404错误)。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# MVC .Net Core Form,强类型化的Form,无法使用(404错误)。相关的知识,希望对你有一定的参考价值。

我对C#是非常陌生的,我只是想让一个MVC窗体工作,了解信息如何从视图传递到控制器。我只是想让一个MVC表单工作,了解信息如何从视图传递到控制器。我试图提交我的表单,并通过输入更新页面(最终,我可以找出如何将表单数据传递到一个XML文件。但是当我点击表单上的提交时,我得到一个错误。需要一些帮助,请。我找不到一个简单的教程来指导我完成这个任务。

我的文件是: User.cs (model), AddACustomerController.sc (controller), and AddACustomer.cshtml (view)

型号:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.ComponentModel.DataAnnotations;
using System.Web;

namespace WebApplication10.Models

    public class User
    


        [Required]
        [Display(Name = "First Name")]
        public string FirstName  get; set; 

        [Required]
        [Display(Name = "Last Name")]
        public string LastName  get; set; 

        [Required]
        [Display(Name = "Role")]
        public string Role  get; set; 



    

控制仪。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using System.Web;
using WebApplication10.Models;

namespace WebApplication10.Controllers

    public class AddACustomerController : Controller
    
        public IActionResult Index()
        
            return View();
        

        [HttpPost]
        public ActionResult UserForm(Models.User person)
        
            string firstname = person.FirstName;
            string lastname = person.LastName;
            string role = person.Role;

            ViewBag.n = person.FirstName;
            ViewBag.l = person.LastName;
            ViewBag.r = person.Role;

            return View("UserForm");
        
    

视图。

@model WebApplication10.Models.User

@
    ViewData["Title"] = "AddACustomer";


<h1>AddACustomer</h1>

<h4 style="color:purple">
    <b>First Name:</b>    @ViewBag.f <br />
    <b>Last Name:</b>  @ViewBag.l <br />
    <b>Role:</b> @ViewBag.r
</h4>
<hr />


@using (Html.BeginForm("UserForm", "AddACustomer", FormMethod.Post))

    <table cellpadding="0" cellspacing="0">
        <tr>
            <th colspan="2" align="center">Person Details</th>
        </tr>
        <tr>
            <td>First Name: </td>
            <td>
                @Html.TextBoxFor(m => m.FirstName)
            </td>
        </tr>
        <tr>
            <td>Last Name: </td>
            <td>
                @Html.TextBoxFor(m => m.LastName)
            </td>
        </tr>
        <tr>
            <td>Role: </td>
            <td>
                @Html.DropDownListFor(m => m.Role, new List<SelectListItem>
                new SelectListItemText="Administrator", Value="Administrator",
                 new SelectListItemText="Data Entry", Value="Data Entry",
                 new SelectListItemText="Sales", Value="Sales",
                 new SelectListItemText="Networking", Value="Networking"
                 , "Please select")
            </td>
        </tr>

        <tr>
            <td></td>
            <td><input type="submit" value="Submit" /></td>
        </tr>
    </table>


视图的图片。

enter image description here

当我点击表格上的提交按钮时,出现错误的图片。

enter image description here

答案

问题是

return View("UserForm");

对你来说,最简单的办法可能是把所有的路线都称为Index。 你可以有

Index() 
Index(Models.User)

否则你需要创建另一个名为UserForm.cshtml的.cshtml(View)。

以上是关于C# MVC .Net Core Form,强类型化的Form,无法使用(404错误)。的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC 强类型部分视图,给出无法加载类型错误

MVC 3 Razor Form Post w/ 多个强类型的部分视图不绑定

[MVC&Core]ASP.NET Core MVC 视图传值入门

[MVC&Core]ASP.NET Core MVC 视图传值入门

asp.net Core MVC + form validation + ajax form 笔记

字典字段服务器端的 C# 正则表达式验证 - .Net Core MVC