2012-06-08 11 views
10

Ich bin brandneu zu allen Dingen .NET. Ich habe eine sehr einfache Webseite mit einem HTML-Formular. Ich möchte 'onsubmit' senden, um die Formulardaten von der Ansicht an den Controller zu senden. Ich habe ähnliche Beiträge gesehen, aber keine haben Antworten mit der neuen ish Razor-Syntax. Was mache ich mit "onsubmit" und wie greife ich auf die Daten vom Controller zu? Vielen Dank!!ASP.NET MVC 3 Razor: Übergabe von Daten von der Ansicht an Controller

Antwort

26

Sie können Ihre Ansichtssteuerelemente, die Sie übergeben möchten, in Html.Beginform einschließen.

Zum Beispiel:

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

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

} 

Wenn Submit-Button alles innerhalb von dieser Begin gedrückt wird, zu Ihrer „ActionMethodName“ Methode des „controller“ Kontrolleur vorgelegt.

auf der Steuerungsseite Sie alle empfangenen Daten aus der Sicht wie folgt zugreifen können:

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

} 

Sammelobjekt Einträge enthält alle Eingaben, die wir aus dem Formular eingereicht. Sie können sie mit Namen zugreifen wie Sie jedes Array zugreifen würde: collection [ „blah“] oder collection.Get („blah“)

Sie können auch direkt Parameter an Ihre Controller übergeben, ohne die gesamte Seite senden mit FormCollection:

Oder Sie können beide Methoden kombinieren und bestimmte Parameter zusammen mit der Formcollection übergeben Es liegt an dir.

Ich hoffe, es hilft.

bearbeiten: während ich andere Benutzer schrieb, verweisen Sie auch auf einige hilfreiche Links. Schau mal.

+0

Großartig, vielen Dank! –

+0

Zum Kombinieren können Sie das auch tun: HttpContext.Request.Form ["index"]; Auf diese Weise müssen Sie FormCollection nicht in Parametern hinzufügen. –

0

ein Formular in folgenden Weise definieren:

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

Werden einen Aufruf der Methode "ControllerMethod" in der Steuerung "controller" machen. In der Methode können Sie ein Modell oder andere Datentypen als Eingaben akzeptieren. Sehen Sie this Tutorial für Beispiele mit Formen und Rasierer mvc.

Verwandte Themen