2010-04-29 6 views
0

Pretty Basic un ici les gars.Liaison de modèle à l'aide de ASP.NET MVC, obtention de la sortie de données vers le contrôleur

J'ai une vue qui détient 2 textfields pour l'entrée et un bouton soumettre

<%using (Html.BeginForm("DateRetrival", "Home", FormMethod.Post)){ %>  
<%=Html.TextBox("sday")%> 
<%=Html.TextBox("eday")%> 
<input type="submit" value="ok" id="run"/> 
<% }%> 

l'action du contrôleur suivant que je veux lier l'entrée de données est la suivante

[AcceptVerbs(HttpVerbs.Get)] 
    public ActionResult DateRetrival() 
    { 
     return View(); 
    } 


    [AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult DateRetrival(string submit) 
    { 


     return null; 
    } 

Quand je debug cela et regardez dans le paramètre méthodes d'action, la valeur est nulle. Lorsque j'ai entré des valeurs dans les deux zones de texte et que j'ai cliqué sur la méthode de soumission.

Répondre

2

Vous voulez sans doute faire quelque chose comme ceci:

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult DateRetrival(string sday, string eday) 
    { 

     return null; 
    } 

Idéalement, si vous voulez probablement être passer un modèle à vos contrôleurs:

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult DateRetrival(DateModel dates) 
    { 
     var date1 = dates.sday; 
     var date2 = dates.eday; 
     return null; 
    } 

Voir http://msdn.microsoft.com/en-us/library/dd394711.aspx

2

Ajoutez des paramètres pour capturer chaque valeur de champ d'entrée.

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult DateRetrival(string sday, string eday) 
{ 
    return null; 
} 
2

Essayez:

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult DateRetrival(string sday, string eday, string submit) 
{ 
    return null; 
} 

et si vous voulez bouton sumbit valeur

<input type="submit" value="ok" id="run" name="submit"/> 

Si vous voulez avoir la valeur affichée, name attribut doit être réglé. Html.TextBox définit automatiquement le nom du paramètre.

Questions connexes