C# MVC. Net Базовая форма, строго типизированная форма, не работает (ошибка 404) - PullRequest
0 голосов
/ 30 апреля 2020

Я очень новичок в C#. Я просто пытаюсь заставить работать форму MVC, чтобы понять, как информация передается из представления в контроллер. Я пытаюсь отправить свою форму и обновить страницу с вводом (в конце концов, чтобы я мог выяснить, как передать данные формы в файл XML. Но я получаю сообщение об ошибке, когда нажимаю кнопку Отправить на форме. помогите, пожалуйста. Я не могу найти простой учебник, который поможет мне в этом.

Мои файлы: User.cs (модель), AddACustomerController.s c (контроллер) и AddACustomer.cs html (просмотр)

МОДЕЛЬ:

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 SelectListItem{Text="Administrator", Value="Administrator"},
                 new SelectListItem{Text="Data Entry", Value="Data Entry"},
                 new SelectListItem{Text="Sales", Value="Sales"},
                 new SelectListItem{Text="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

1 Ответ

1 голос
/ 30 апреля 2020

Проблема в

return View("UserForm");

Возможно, вам проще всего сохранить все ваши маршруты под названием Index. Вы можете иметь

Index() 
Index(Models.User)

В противном случае вам нужно будет создать еще один .cs html (просмотр) с именем UserForm.cs html.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...