2013-04-01 10 views
5

Chcę uzyskać wartość pola tekstowego HTML w kontrolerze. Poniżej jest mój kod widokUzyskaj wartość kontrolek HTML w kontrolerze

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

proszę sprawdzić mój kod kontrolera poniżej w celu uzyskania wartości

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

otrzymuję wartości null

Odpowiedz

7

dodać atrybut nazwy do pól wejściowych, takich jak:

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

I Asp.net MVC Html.BeginForm używaj atrybutu nazwy elementu html do serializacji. Następnie trzeba wypełnić atrybut nazwy elementu html

1

Get HTML Control Value w kontrolerze poprzez gromadzenie formy, Trzeba dodać „nazwa” atrybutu do kontroli HTML .

4

Jeśli zadeklarujesz wszystkie kontrole w widoku wewnątrz

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

ASP.NET (strony internetowe, MVC, brzytwa) używa protokołu HTTP jako podstawa do interakcji pomiędzy klientem a serwerem. Aby HTTP przekazywał wartości po stronie klienta po stronie serwera, wszystkie elementy HTML muszą mieć zdefiniowane atrybuty nazw. Atrybut id w elemencie HTML służy tylko do użytku front-end. (CSS, JavaScript, JQuery itp.). Zobacz poniższy wiersz kodu dla przykładu roboczego;

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

Następnie w kontrolerze można uzyskać dostęp do formantów za pomocą obiektu FormCollection. Obejmuje wszystkie kontrolki opisane za pomocą atrybutu name.

// 
// 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

uratowałeś mi życie)) –