Nel controller;
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Search(FormCollection collection)
{
String g = collection["textFieldname"]
}
oppure è possibile utilizzare;
TryUpdateModel(modelName);
Quanto sopra è la soluzione preferita. Se hai bisogno di maggiori informazioni su TryUpdateModel, pubblica un commento e te lo spiego per te.
EDIT:
Invece di spiegare mi permetta semplicemente mostrare;
nel controller:
public class MyFormViewModel
{
public string myInput {get; set;}
}
public ActionResult Search()
{
MyFormViewModel fvm = new MyFormViewModel();
return View(fvm);
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Search(FormCollection collection)
{
MyFormViewModel fvm = new MyFormViewModel();
TryUpdateModel<MyFormViewModel>(fvm);
string userInput = fvm.myInput;
}
Quindi secondo lei;
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<YOURNAMESPACE.Controllers.MyFormViewModel>" %>
<%= Html.TextBox("myInput", Model.myInput) %>
Avviso due cose.
La pagina eredita dal modello/classe definito nel controller. Non è il posto migliore per farlo, ma come un esempio lo farà.
L'altra cosa è che la casella di testo è il nome uguale alla proprietà nel modello. In questo caso myInput.
Quando il controller fa UpdateModel, riflette la cosa fuori e abbina il nome della casella di testo con il nome del campo all'interno del modello di visualizzazione del modulo.
Ha senso?
EDIT 2
Inoltre, non dimenticare di avvolgere il pulsante e il vostro campo in una;
<% using (Html.BeginForm()) {%>
Ciao, Grazie per la risposta ... non dirmi come tryupdatemodel (ModelName) ha alcuna relazione con la casella di testo per la vista ... Grazie – Josh
guardato attraverso essa .... ho capito .. .. ma qui ... <% = Html.TextBox ("myInput", Model.myInput)%>, Model.myInput verrà automaticamente associato a myFormViewModel.myinput? Penso che sia quello che hai sottolineato che si risolve automaticamente usando il reflection ottenendo il nome della classe pertinente ... Giri leggermente la testa perché la chiami "Model.MyInput" sulla vista ... ma penso che probabilmente scriverò il codice e funzionerà. – Josh
Voglio dire come saprebbe quale modello ... e dove ... questo è quello che stavo pensando – Josh