ASP.NET MVC 3 - Affichage d'un Formulaire de Retour pour le Contrôleur
Je suis nouveau sur ASP.NET MVC. Je suis actuellement à l'aide ASP.NET MVC 3. Je suis en train de créer une base de formulaire avec un bouton image que les messages de données vers le contrôleur. Mon formulaire se présente comme suit:
Mavue.cshtml
@using (Html.BeginForm())
{
@Html.TextBox("queryTextBox", string.Empty, new { style = "width:150px;" })
<input type="image" alt="Search" src="/img/search.png" value="Search" name="ExecuteQuery" />
}
MyController.cs
public class MyController: Controller
{
public ActionResult Index()
{
ViewData["CurrentDate"] = DateTime.UtcNow;
return View();
}
[HttpPost]
public ActionResult ExecuteQuery()
{
if (ModelState.IsValid)
{
return View();
}
}
}
J'ai vérifié que je suis à accéder à mon contrôleur de code. La manière dont j'ai été capable de faire, c'est de réussir l'impression de l' "CurrentDate" associé à la ViewData. Cependant, lorsque je clique sur mon bouton image, j'ai été en supposant que mon point de rupture dans la méthode ExecuteQuery mettrait le feu. Il ne le fait pas. Ce que je fais mal? Comment dois-je faire un simple POST dans MVC?
OriginalL'auteur Villager | 2011-11-28
Vous devez vous connecter pour publier un commentaire.
Votre formulaire pointe vers la mauvaise action.
Appel
Html.BeginForm()
crée un<form>
que les Postes à l'action en cours (Index
).Vous avez besoin de passer le nom de l'action à
BeginForm
.Vous avez aussi besoin de transmettre le nom du contrôleur.
J'ai essayé avec les deux "@l'aide de Html (.BeginForm("ExecuteQuery", "Ma"))" et "@l'aide de Html (.BeginForm("ExecuteQuery", "MyController"))" sans un peu de chance. Que pourrait-il être?
Vérifiez l'Url dans un violon ou Firebug et figure où il va.
OriginalL'auteur SLaks
Essayer celui-ci
Dans votre contrôleur
Si l'image bouton de soumission est très important pour vous, vous pouvez toujours changer le bouton image d'arrière-plan à l'aide de CSS.
OriginalL'auteur kgfaith