2013-04-01 7 views
5

Ich möchte HTML-Textbox-Wert im Controller erhalten. Unten ist mein Code anzeigenGet HTML-Steuerelemente Wert in Controller

@using (Html.BeginForm("SaveValues", "TestGrid",FormMethod.Post)) 
{ 
<table> 
<tr> 
    <td>Customer Name</td> 
    <td> 
     <input id="txtClientName" type="text" /> 
    </td> 
    <td>Address</td> 
    <td> 
     <input id="txtAddress" type="text" /></td> 
    <td> 
     <input id="btnSubmit" type="submit" value="Submit" /></td> 
    </tr> 
</table>} 

Bitte überprüfen Sie unter meinem Controller-Code die Werte

[HttpPost] 
    public ActionResult SaveValues(FormCollection collection) 
    { 
     string name = collection.Get("txtClientName"); 
     string address = collection.Get("txtAddress"); 
     return View(); 
    } 

Ich erhalte Nullwerte

Antwort

7

add name-Attribut auf Ihre Eingabefelder wie zu bekommen:

<input id="txtClientName" name="txtClientName" type="text" /> 
0

Ich Asp.net MVC Html.BeginForm verwenden Name Attribut von HTML-Element für die Serialisierung. Dann müssen Sie name-Attribut von HTML-Element

0

Versuchen Sie, diese füllen:

Request.Form["controlID"] 
1

So erhalten Sie die HTML-Steuerwert in der Steuerung durch Formularsammlung, Sie müssen „name“ -Attribut auf Ihre HTML-Steuerelemente hinzufügen .

4

Wenn Sie alle Ihre Kontrollen in der Ansicht in dem

@using (Html.BeginForm()) 
{ 
//Controls... 
} 

ASP.NET erklären (WebPages, MVC, RAZOR) verwendet HTTP-Protokoll als Basis für die Interaktion zwischen Client und Server. Und damit HTTP serverseitig clientseitige Werte übergibt, müssen alle HTML-Elemente Namensattribute definiert haben. Das ID-Attribut im HTML-Element dient nur dem Front-End-Gebrauch. (CSS, JavaScript, JQuery usw.). In den folgenden Codezeilen finden Sie ein funktionierendes Beispiel.

<input type="text" name="zzzz" id="xxxx"/> 

Dann können Sie in der Steuerung auf die Steuerelemente mit FormCollection-Objekt zugreifen. Es enthält alle Steuerelemente, die mit einem Namensattribut beschrieben werden.

// 
// POST: 
[HttpPost] 
public ActionResult CreatePortal(FormCollection formCollection) 
{ 
    // You can access your controls' values as the line below. 
    string txtValue = formCollection["zzzz"]; 

    //Here is you code... 
} 
+0

Sie haben mein Leben gerettet)) –