2014-04-19 3 views
0

J'ai un SearchController.cs dans mon dossier de contrôleur, il a une action nommée Index. Mon dossier de recherche a une vue nommée Index Le code suivant est dans mon/contrôleur/SearchControllerProblèmes avec Html.BeginForm() asp.net MVC 2

private TEAM2BooksDBEntities _db = new TEAM2BooksDBEntities(); 
    [HttpPost] 
    public ActionResult Index(string SearchFor) 
    { 
     var query = _db.Books.Where(em => em.title.Contains(SearchFor)).ToList(); 
     return View(query); 
    } 

Le code suivant est dans mon/Accueil/Index

<% using(Html.BeginForm("Index","Search")){ %> 
    <%= Html.TextBox("SearchFor") %> 

    <input type="submit" value="Submit" /> 
    <% }%> 

Mais peu importe ce que je fais quand Je clique sur le bouton "submit" pour recharger la page en cours. Je veux qu'il envoie le contenu de la boîte "SearchFor" en tant que paramètre à l'action Index dans le contrôleur de recherche. Comment puis-je réparer cela?

+0

Comment votre look méthode get comme? Comment différenciez-vous votre méthode de publication? – dotnetstep

+0

Peut-être que c'est le problème, je ne pense pas que j'ai une méthode get. – Dominic

+0

À première vue, tout semble être comme il se doit. J'essayerais ce qui suit: (1) Faites un View-> Source sur la page d'accueil/index et assurez-vous que l'élément '

' est rendu correctement; (2) Installer Fiddler et voir où il affiche les données et ce qu'il affiche pour les valeurs de formulaire lorsque vous soumettez; (3) Utilisez le débogueur pour voir s'il entre dans l'action 'Index' de votre SearchController. –

Répondre

0

Je suggère également d'essayer de l'utiliser.

<% using(Html.BeginForm("Index","Search",FormMethod.Post)){ %> 
<%= Html.TextBox("SearchFor") %> 

<input type="submit" value="Submit" /> 
<% }%> 
+0

J'ai ajouté le FormMethod.Post mais rien – Dominic

+0

Post est l'option par défaut. –

0

Essayez ceci dans votre action:

string SearchFor= Request.Form["SearchFor"];