J'étudie le framework Microsoft ASP MVC. Voici quelque chose d'étrange de ma page.Commandes non actualisées dans ASP.net MVC
J'ai deux liste déroulante sur la page. Le premier envoie le formulaire en retour, en passant les paramètres au contrôleur. Le contrôleur met à jour la deuxième liste déroulante et d'autres contrôles, comme deux zones de texte. Je passe les données aux viewdata. Et les assignés aux contrôles (SelectList à DropDownList, et chaîne à TextBox). Mais ces contrôles restent comme avant le poste. Comment puis-je résoudre ce problème? Merci d'avance!
Cordialement
Edit:
Merci! Voici mon code:
Vue:
<script type="text/javascript" language="javascript">
function Postback() {
var control = document.getElementById("Country");
var parameter = document.getElementById("CountryName");
parameter.value = control.value;
document.forms.item(0).submit();
}
</script>
<%Html.BeginForm();%>
<fieldset>
<legend>Fields</legend>
<p style="height: 0px">
<input type="hidden" id="CountryName" name="CountryName" value="" />
</p>
<p>
<label for="Country">Country:</label>
<%=Html.DropDownList("Country", (SelectList)ViewData["Countries"]), new { onchange="Postback()" })%>
</p>
<p>
<label for="State">State:</label>
<%=Html.DropDownList("State", (SelectList)ViewData["States"])%>
</p>
<p>
<label for="Brief Intro">Introduction:</label>
<%= Html.TextBox("Intro", ViewData["Introduction"]) %>
</p>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
<%Html.EndForm(); %>
Controller:
public ActionResult Info()
{
ViewData["Countries"] = new SelectList(_db.Coutries.ToList(), "Id", "Name");
return View();
}
AcceptVerbs(HttpVerbs.Post)]
public ActionResult Info(int country)
{
ViewData["Countries"] = new SelectList(_db.Coutries.ToList(), "Id", "Name", country);
ViewData["States"] = new SelectList(_db.States.Where(s => s.countryid == country).ToList(), "Id", "Name");
ViewData["Info"] = _db.CountryInfo.SingleOrDefault(info => info.countryid == country).Content;
return View();
}
Edit: Appel ModelState.Clear() dans le second contrôleur résoudre ce problème. Merci à vous tous qui proposez des suggestions! Merci beaucoup!
Semble que vous fournissez trop peu d'informations. –
Publiez du code, cela nous aidera beaucoup. –
Post le code de View et les actions GET et POST, s'il vous plait. –