Ошибка «Ресурс не может быть найден» при попытке опубликовать отправленную форму в ViewBag

#c# #asp.net-mvc #model-view-controller

#c# #asp.net-mvc #модель-представление-контроллер

Вопрос:

Я относительно новичок в MVC, я пытался создать форму на своей странице просмотра, которая позволяет мне выбирать значения данных с помощью переключателя, а затем передавать эти данные контроллеру, где он вернет их обратно на страницу просмотра с помощью ViewBag.

Это модель:

 

    public class UserModelR
    {
        public string TeaType { get; set; }
        public string HotelType { get; set; }
    }


  

Это контроллер:

 
    
    
        [HttpGet]
            public ActionResult Radio()
            {
                return View();
            }
            [HttpPost]
            public ActionResult Radio(UserModelR u)
            {
                ViewBag.TeaType = u.TeaType.ToString();
                ViewBag.HotelType = u.HotelType.ToString();
                return View();
            }

  

Это представление:

 

    @model helpers.Models.UserModelR
    @using (Html.BeginForm("Radion", "Home", FormMethod.Post))
    {
        Select Tea Type
        
        Tea: @Html.RadioButton("TeaType", "Tea", false)
        | Coffee: @Html.RadioButton("TeaType", "Coffee", true)
        | BlackTea: @Html.RadioButton("TeaType", "BlackTea", false)
        | GreenTea: @Html.RadioButton("TeaType", "GreenTea", false)
        
        Select Hotel Type
        
         Hotel Grand Plaza: @Html.RadioButton("HotelType", "HotelGrandPlaza", false)
        | Hotel Lake View: @Html.RadioButton("HotelType", "HotelLakeView", false)
        | Hotel River Side: @Html.RadioButton("HotelType", "HotelRiverSide", true)
        | Hotel Mountain View: @Html.RadioButton("HotelType", "HotelMountainView", false)
        
        
    }
    
    You Selected
    Tea Type: @ViewBag.TeaType
    Hotel Type: @ViewBag.HotelType

  

Когда я нажимаю «Отправить», он перенаправляет меня на «Ресурс не может быть найден». страница с ошибкой.

Комментарии:

1. В вашей Html.BeginForm, которую вы отправляете в действие с именем Radion, также в форме return View() ваше действие Get и Post должно передавать модель в качестве параметра.

2. Имя вашего действия (Radio) в контроллере не совпадает с именем представления (Radion) в файле .cshtml.