2009-08-31 12 views

Répondre

8

Dans votre contrôleur;

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Search(FormCollection collection) 
{ 
    String g = collection["textFieldname"] 
} 

ou vous pourriez utiliser;

TryUpdateModel(modelName); 

Ce qui précède est la solution préférée. Si vous avez besoin de plus d'informations sur TryUpdateModel, postez un commentaire et je le développerai pour vous.

EDIT:

Plutôt que d'expliquer cela me laisse montrer simplement vous;

Dans votre contrôleur:

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

Alors à votre avis;

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<YOURNAMESPACE.Controllers.MyFormViewModel>" %> 

<%= Html.TextBox("myInput", Model.myInput) %> 

Notez deux choses.

La page hérite de votre modèle/classe défini dans le contrôleur. Pas le meilleur endroit pour cela, mais à titre d'exemple, il va faire.

L'autre chose est que la zone de texte porte le même nom que la propriété dans le modèle. Dans ce cas myInput. Lorsque le contrôleur met à jour UpdateModel, il reflète le résultat et fait correspondre le nom de la zone de texte avec le nom du champ dans votre modèle de vue de formulaire.

Avez-vous du sens?

EDIT 2

Aussi, ne pas oublier d'envelopper le bouton et votre champ dans un;

<% using (Html.BeginForm()) {%> 
+0

Salut, Merci pour la réponse ... ne s'il vous plaît me dire comment TryUpdateModel (modelname) a une relation avec la zone de texte sur la vue ... Merci – Josh

+0

regardé à travers .... Je comprends .. .. mais ici ... <% = Html.TextBox ("myInput", Model.myInput)%>, Model.myInput mapperait automatiquement à myFormViewModel.myinput? Je pense que c'est ce que vous avez fait remarquer qu'il se résout automatiquement en utilisant la réflexion en obtenant le nom de la classe ... Légèrement en rotation parce que vous l'appelez "Model.MyInput" sur la vue ... mais je pense que je vais probablement écrire le code et ça va marcher. – Josh

+0

Je veux dire comment pourrait-il savoir quel modèle ... et où ... c'est ce que je pensais – Josh

Questions connexes