rushdy20 Ответов: 4

В MVC передача параметров на должность контролер


я очень новичок в MVC

мне нужна некоторая помощь, чтобы решить проблему передачи параметра контроллеру при отправке формы

то, что у меня есть, - это следующий контроллер и представление
[HttpGet]
        public ActionResult Index()
        {
            return View(_bag.GetBag);
        }
        [HttpPost]
        public ActionResult Index(string method ="None" )
        {
            
                switch (method)
                {
                    case "Add10":
                        _bag.GetBag = Get100Products().Take(10).ToList<Product>();
                        break;
                    case "Clear":
                        _bag = null;                       
                        _bag = new Models.Bag();
                        break;
                    case "Add":
                        if ((Request.Form["Id"] != null) && (Request.Form["Id"] != ""))
                        {
                            if (_bag.GetBag.Count < 100)
                            {
                                var p = GetProduct(Request.Form["Id"]);
                                int qnt = Convert.ToInt16(Request.Form["qnt"]);
                                if (p.ItemNumber != null)
                                {
                                    p.Quantity = qnt;
                                    p.Index++;
                                    _bag.Item = p;
                                }
                            }
                        }
                        break;

                       

                
            }
                return View(_bag.GetBag);
        }


а вид часть вида
<div style="vertical-align:middle">

@using (Html.BeginForm("", "Home", new { method = "Add10" }, FormMethod.Post))
{
<!-- form goes here -->

 <input type="submit" value="Add 10 Items to bag" />

}

 @using (Html.BeginForm("GetDiscount", "Home", FormMethod.Post))
{
 <div>
 <!-- form goes here -->

  <input type="submit" value="Get Discount" />
    With MAX time in seconds  <input type="text" name="time" maxlength="2" value="2" />

  </div>
}


@using (Html.BeginForm("", "Home", new { method = "Clear" }, FormMethod.Post))
 {
   <input type="submit" value="Empty the bag" />
 }
</div></form> 


так я жду когда нажал кнопку "Добавить" 10 предметов в сумке, чтобы передать значение метода "Add10" в индексе контроллера и при нажатии на пустой мешок, чтобы пройти "чисто" метод значение индекса контроллера

но он всегда показывает как "нет"

что я сделал не так ценю всю вашу помощь

спасибо

Jitendra Sabat

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

Member 11083196

м

4 Ответов

Рейтинг:
31

SDK03

Эй,


Если вы хотите передать какое-либо значение в метод action, то укажите RouteValues.

Вот пример. RouteValues используется для передачи значения из представления в контроллер. Имя параметра должно быть похоже на routevalue.

HTML-код.Бигинформ("индекс", "дом",новый{@метод="тест"},FormMethod.Почта)

Также не пропустите это имя метода действия "индекс". ;)


Рейтинг:
19

Anupam Singh

Эй, дорогой, это происходит потому, что вы не настроили маршрут с параметром "метод".

попробовать это.

маршруты.MapRoute( "По Умолчанию",
"{контроллер}/{действие}/{идентификатор}",
новый { контроллера = "Главная", показатель действий = "" метод= "" } );

это будет в вашем глобальном файле.asax.


Рейтинг:
1

Member 13690293

Проверьте, что ваш контроллер утверждает, что это none, поэтому он возвращает None против вашего представления, где вы даете значения Add10 и т. д.

[HttpPost]
        public ActionResult Index(string method ="None" )
        {


Deepu S Nair

Вы отвечаете на вопрос, которому уже почти 6 лет и который уже решен .Это может привлечь понижение вашего ответа.Пожалуйста, постарайтесь ответить на новые вопросы.

Рейтинг:
0

tpkpradeep

Добавьте ниже из них в метод действия обновления::

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]




<input type="button" command="Clear"/>


if(command=="Add10")
{

//Your Logoc
}




if(command=="Add10")
{
//Your Logic
}




дайте вышеуказанную команду в кнопке просмотра..!!!