私はMicrosoft ASP MVCフレームワークを勉強しています。ここに私のページの何か変なことがあります。コントロールはASP.netでリフレッシュされませんMVC
私はページに2つのドロップダウンリストを持っています。最初のフォームは、フォームをバックにポストし、パラメータをコントローラーに渡します。コントローラーは、2つ目のドロップダウンリストと2つのテキストボックスのような他のコントロールを更新します。私はビューデータにデータを渡します。そしてそれらをコントロールに割り当てました(SelectList to DropDownList、string to TextBox)。しかし、これらのコロールは、ポストの前と同じままです。どうすれば修正できますか?前もって感謝します!
よろしく
編集:
ありがとう!ここに私のコードは次のとおりです。
ビュー:
<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();
}
編集:その問題を解決する第二のコントローラにModelState.Clear()を呼び出します。ご提案ありがとうございました皆様ありがとうございます!本当にありがとう!
あなたはあまり情報を提供していないようです。 –
私たちの多くを助けるいくつかのコードを投稿してください。 –
ビューとGETアクションとPOSTアクションの両方からコードを投稿してください。 –