私はカミソリのページにフォームと部分的なビューを持っています。つまり、ドロップダウンリストを変更すると、コントローラはいくつかの作業を行い、部分ビューをトリガーするViewBag.ShowAlert(ブール)を設定します。表示されます。PartialViewは挿入ではなくリダイレクト
部分表示内にコードを表示するだけでなく、部分表示は同じビューではなく新しい表示として表示されます。
理由は何ですか?
ビューHttpPostを扱うコントローラがこの
[HttpPost]
public PartialViewResult AlterVote(Dropdown dropType)
{
ChangeBoilerPlate(dropType.SelectedType);
dropType.CurrentType = VoteTypeNames[(int)HomeController.VoterModel.CurrentVoteType];
return PartialView("VotingChange", dropType);
}
あるこの
@using (Html.BeginForm("AlterVote", "ChangeVoteType"))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h1>New voting preference</h1>
<hr />
<p>Please select the type of vote you wish to change to @Html.DropDownListFor(model=>model.SelectedType, ViewBag.myList as SelectList, "Voting type", new { onchange = "this.form.submit();"})</p>
<div id="partialDiv">
@if (ViewBag.ShowAlert)
{
@Html.Partial("VotingChange")
}
</div>
</div>
}
のように見える私はこれがダウンして最初のビューはフォームであることにあるので、部分的に取得することを推測していますビューを挿入する場所については混乱しています。
'onchange =" this.form.submit(); "これはフォーム提出とそれに続くナビゲーション(新しいビュー)をトリガします。ページ要素 '#partialDiv'を更新するためには、AJAXリクエストをトリガし、レスポンスを処理する必要があります。 – Jasen