Ответ 1
Вы можете обернуть элементы управления представлением, которые вы хотите передать в Html.Beginform.
Например:
@using (Html.BeginForm("ActionMethodName","ControllerName"))
{
... your input, labels, textboxes and other html controls go here
<input class="button" id="submit" type="submit" value="Submit" />
}
При нажатии кнопки "Отправить" все внутри этого Beginform будет передано вашему методу "ActionMethodName" контроллера "ControllerName".
На стороне контроллера вы можете получить доступ ко всем полученным данным из вида следующим образом:
public ActionResult ActionMethodName(FormCollection collection)
{
string userName = collection.Get("username-input");
}
объект коллекции выше будет содержать все ваши входные записи, которые мы отправили из формы. Вы можете получить к ним доступ по имени, как если бы вы получили доступ к любому массиву: Коллекция [ "мля" ] или collection.Get( "blah" )
Вы также можете передавать параметры своим контроллерам напрямую, не отправляя всю страницу с помощью FormCollection:
@using (Html.BeginForm("ActionMethodName","ControllerName",new {id = param1, name = param2}))
{
... your input, labels, textboxes and other html controls go here
<input class="button" id="submit" type="submit" value="Submit" />
}
public ActionResult ActionMethodName(string id,string name)
{
string myId = id;
string myName = name;
}
Или вы можете комбинировать оба этих метода и передавать определенные параметры вместе с Formcollection. Это зависит от вас.
Надеюсь, что это поможет.
edit: в то время как я писал, другие пользователи ссылались на некоторые полезные ссылки. Посмотрите.