Je rencontre des problèmes pour envoyer mon formulaire à ma méthode Save dans un contrôleur. Je suis nouveau à MVC, et j'ai suivi plusieurs exemples pour essayer de faire fonctionner cela. Voici mon code html:Impossible d'obtenir le formulaire ASP.NET MVC pour envoyer
<form action="Edit/Save" method="post">
<fieldset>
<legend>Personal Information</legend>
<table class="editGrid">
<tr>
<td><label for="txtFirstName">First Name:</label></td>
<td><input type="text" id="txtFirstName" value="<%=user.FirstName %>" name="FirstName" /></td>
</tr>
<tr>
<td><label for="txtLastName">Last Name:</label></td>
<td><input type="text" id="txtLastName" value="<%=user.LastName %>" name="LastName" /></td>
</tr>
<tr>
<td><label for="txtNtLogin">NT Login:</label></td>
<td><input type="text" id="txtNtLogin" value="<%=user.NtLogin %>" name="NtLogin" /></td>
</tr>
<tr>
<td><label for="txtHireDate">Hire Date:</label></td>
<td><input type="text" id="txtHireDate" value="<%=string.Format("{0:d}",user.HireDate) %>" name="HireDate" /></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend>Job Information</legend>
<table class="editGrid">
<tr>
<td><label for="CostCenters">Cost Center:</label></td>
<td><%=Html.DropDownList("CostCenters")%></td>
</tr>
<tr>
<td><label for="Managers">Manager:</label></td>
<td><%=Html.DropDownList("Managers")%></td>
</tr>
<tr>
<td><label for="Responsibilities">Responsibility:</label></td>
<td><%=Html.DropDownList("Responsibilities")%></td>
</tr>
<tr>
<td><label for="Departments">Department:</label></td>
<td><%=Html.DropDownList("Departments")%></td>
</tr>
<tr>
<td><label for="Active">Active:</label></td>
<td><%=Html.CheckBox("Active",user.Active) %></td>
</tr>
<tr>
<td><label for="txtHireDate">Hire Date:</label></td>
<td><%=Html.TextBox("txtHireDate",string.Format("{0:d}",user.HireDate)) %></td>
</tr>
<tr>
<td><label for="txtReleaseDate">Release Date:</label></td>
<td><%=Html.TextBox("txtReleaseDate",string.Format("{0:d}",user.ReleaseDate)) %></td>
</tr>
</table>
</fieldset>
<input type="submit" value="Save Changes" />
</form>
Ce formulaire itinéraires à une méthode Enregistrer dans ma EditController. Voici le code pour mon EditController méthode Save:
public class EditController : Controller
{
public ActionResult Save()
{
//Save code goes here
}
J'ai essayé d'utiliser la balise form html, ainsi que le code d'aide Html:
using (Html.BeginForm("Save", "Edit"))
Voici l'entrée de ma méthode RegisterRoutes dans la Global.asax file:
routes.MapRoute("EditSave", "{controller}/Save",
new { controller = "Edit", action = "Save" });
Quoi que je fasse, le bouton d'envoi ne déclenche pas la méthode Save. Pourtant, si je saisis manuellement l'URL, le code se décompose directement dans la méthode Save.
Editer: Par le commentaire de Craig Stuntz, j'ai vérifié la source de la page. La page contient en fait 2 formes, bien que seulement 1 est codé sur la page par moi-même: Voici le code HTML qui apparaît avant mon balise form:
<form name="aspnetForm" method="post" action="44" id="aspnetForm">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNjM3OTAyNTUzZGQrHhVn9+t78aHxN0vHvKUJ8DQWlQ==" />
</div>
<div id="nav">
<span id="navLinks">
<a href="#">Placeholder Link</a>
</span>
<span id="userName">
<span id="ctl00_lblUserName" class="UserName">Welcome, Test User</span>
</span>
</div>
<div id="Content">
<div id="formContainer">
<form action="Edit/Save" method="post">
Je ne pensais pas MVC généré viewstate ou balises de formulaire supplémentaires. Je tire les données et les remplit dans cette forme en utilisant une autre méthode du même contrôleur. Est-ce que je fais quelque chose de mal ici?
Quelle URL de formulaire se trouve dans le HTML rendu (dans le navigateur)? –
Bonne capture Craig !! – Perpetualcoder