Я изучаю структуру Microsoft ASP MVC. Вот что-то странное в моей странице.Элементы управления не обновлены в ASP.net MVC
У меня есть два выпадающих списка на странице. Первый отправляет форму обратно, передавая параметры контроллеру. Контроллер обновляет второй выпадающий список и другие элементы управления, например два текстовых поля. Я передаю данные в viewdata. И назначил их элементам управления (SelectList to DropDownList и строка в TextBox). Но эти полномочия остаются такими же, как и до поста. Как я могу это исправить? Заранее спасибо!
С уважением
Edit:
Спасибо! Вот мой код:
Вид:
<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(); %>
Контроллер:
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: Вызов ModelState.Clear() во втором контроллере исправить эту проблему. Спасибо всем, кто предлагает предложения! Большое спасибо!
Кажется, что вы предоставляете слишком мало информации. –
Опубликовать код, который нам очень поможет –
Отправьте код с поля «Вид» и «GET» и «POST», пожалуйста. –