Как передать параметры в Html.BeginForm (действие, контроллер)

Вид

@using (Html.BeginForm())
{
    <input name= "number1" /><br />
    <input type="submit"/>
}

Контоллер

[HttpPost]
public ActionResult GetNumber(int number1)
{
}

работает нормально, тогда как следующий код

Вид

@using (Html.BeginForm("SomeAction","SomeContoller"))
{
    <input name= "number1" /><br />
    <input type="submit"/>
}

Контроллер

[HttpPost]
public ActionResult SomeAction(int number1)
{
}

не работает. Я пробовал без параметра, который тогда работал, но я не могу получить значение для номера 1 для этого контроллера. Как бы я это сделал?

Спасибо за Ваш ответ :)


person Gerry    schedule 17.12.2013    source источник
comment
Я не думаю, что тег asp-classic подходит для этого вопроса, просмотрите его.   -  person Stef Heyenrath    schedule 17.12.2013


Ответы (3)


Используете ли вы для параметра имени контроллера что-то вроде «HomeController» или просто «Home»? Потому что я думаю, что там должен быть только префикс.

@using (Html.BeginForm("MyAction", "Home"))
{
    <input name= "number1" /><br />
    <input type="submit"/>
}
person user3111579    schedule 17.12.2013

Используйте 1_ ?

person Stef Heyenrath    schedule 17.12.2013
comment
Нет, это должен быть параметр «имя». (достаточно, если это просто «имя») - person FrenkyB; 25.03.2016

Попробуй это:

    @using (Html.BeginForm("SomeAction","SomeControler",new {number1 = 1}, FormMethod.Post))
    {                 
            <input type="submit" value="Submit" />
    }
person Vasyl Korzhyk    schedule 20.06.2015