これは、同様の質問に続きますが、提案を考慮しています。ドロップダウン選択部分2のページの一部をレンダリングする
Render part of page on dropdown selection
私はドロップダウンが異なる値を選択し、部分的にするときに更新したいと思います私のメインビューにチャートを持っています。
ページが正しくレンダリングされますが、ドロップダウンリストで新しい値を選択すると、.submitスクリプトがスクリプトの中で失敗していると思います.submit()window.submitAjaxForm決して到達されません。
_PnlChart.cshtml
<img src="@Url.Action("CreateTraderPnlChart3")" width="600" height="600" align="middle" vspace="50" />
マイMAINVIEW Index.cshtml:
<div class="w3-half">
<div id="ExportDiv">
@{ Html.RenderPartial("_PnlChart");}
</div>
@using (Ajax.BeginForm("GetEnvironment",
new RouteValueDictionary { { "Environment", "" } }, new AjaxOptions() { UpdateTargetId = "ExportDiv" }, new { id = "ajaxForm" }))
{
@Html.DropDownList("PeriodSelection",
new SelectList((string[])Session["Periods"]),
(string)Session["Period"],
new
{ onchange = "submitAjaxForm()" })
}
</script>
<script type="text/javascript">
$('form#ajaxForm').submit(function(event) {
eval($(this).attr('onsubmit')); return false;
});
window.submitAjaxForm = function(){
$('form#ajaxForm').submit();
}
</script>
</div>
マイコントローラ:
public ActionResult PeriodSelection(string dropdownlistReturnValue) // dont know what dropdownlistReturnValue is doing?
{
Session["Period"] = dropdownlistReturnValue;
return PartialView("~/Views/Employee/_PnlChart.cshtml");
}
これらの変更を正確に行いました。これは起動時にビュー全体を適切にレンダリングします。その後、ドロップダウンの選択でPeriodSelectionに入りますが、部分表示領域は完全に空白になります(元の図も消えてしまいます)。 – ManInMoon
これは、あなたのajax呼び出しが機能していることを意味しますが、ajax呼び出しからの応答は、あなたが望むグラフをレンダリングしていません。ブラウザのネットワークタブを確認し、ajaxコールの応答を確認してください。あなたのアクションメソッドコードにはいくつかの問題があります。 – Shyju
OK。インデックスではなく選択テキストを渡すことはできますか?それ、どうやったら出来るの? .val alwasyはインデックスを与えますか? – ManInMoon