2012-06-08 17 views
10

Jestem brand new dla wszystkich rzeczy .NET. Mam bardzo podstawową stronę internetową z formularzem HTML. Chcę, aby "onsubmit" wysyłał dane formularza z widoku do kontrolera. Widziałem podobne posty, ale żadna z nich nie zawiera odpowiedzi na temat nowej składni brzytwy. Co mam zrobić z "onsubmit" i jak uzyskać dostęp do danych z kontrolera? Dzięki!!Brzytwa ASP.NET MVC 3: przekazywanie danych z widoku do kontrolera

Odpowiedz

26

Możesz zawinąć formanty widoku, które chcesz przekazać w Html.Beginform.

Na przykład:

@using (Html.BeginForm("ActionMethodName","ControllerName")) 
{ 
... your input, labels, textboxes and other html controls go here 

<input class="button" id="submit" type="submit" value="Submit" /> 

} 

Po naciśnięciu przycisku Wyślij jest wszystko wewnątrz tej Beginform zostanie przedłożony do „ActionMethodName” sposobu „ControllerName” kontrolera.

po stronie kontrolera można uzyskać dostęp do wszystkich danych odbieranych z widoku jak ten:

public ActionResult ActionMethodName(FormCollection collection) 
{ 
string userName = collection.Get("username-input"); 

} 

kolekcja przedmiot powyżej będzie zawierać wszystkie dane wejściowe, które złożyliśmy z formularza. Można do nich po imieniu, tak jak byś dostęp do każdej tablicy: kolekcji [ „bla”] lub collection.Get („bla”)

Można również przekazać parametry do swoich kontrolerów bezpośrednio bez wysyłania całą stronę z FormKollection:

@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; 

} 

Lub można połączyć obie te metody i przekazać określone parametry wraz z formcollection. To zależy od Ciebie.

Mam nadzieję, że to pomaga.

edytuj: podczas pisania innych użytkowników kierowałem Cię także do przydatnych linków. Spójrz.

+0

Świetnie, dziękuję bardzo! –

+0

Do łączenia możesz również: HttpContext.Request.Form ["index"]; w ten sposób nie trzeba dodawać FormCollection w parametrach. –

0

Definiowanie formularz w następujący sposób:

@using (Html.BeginForm("ControllerMethod", "ControllerName", FormMethod.Post))

wykorzysta wywołanie metody „ControllerMethod” w sterowniku „ControllerName”. W tej metodzie można zaakceptować model lub inne typy danych jako dane wejściowe. Zobacz samouczek this, gdzie znajdziesz przykłady użycia formularzy i maszynki do golenia.

Powiązane problemy