我想在用户更改下拉列表的当前值时更新部分 View 。
在我的 onchange 提交中,部分 View 不会加载到 div 中,而是会替换整个页面。 我该如何解决?
查看:
@using (Ajax.BeginForm("GetEnvironment", new RouteValueDictionary { { "Environment", Model.Environnements } }, new AjaxOptions() { UpdateTargetId = "ExportDiv" }))
{
@Html.DropDownListForEnum(x => x.Environnements, new { onchange = "this.form.submit();" })
}
<div id="ExportDiv">
@Html.Partial("Export")
</div>
Controller :
public PartialViewResult GetEnvironment(ExampleDto model)
{
return PartialView("Export", model);
}
导出.cshtml
最佳答案
看起来像triggering submit on the form causes whole page to be posted而不是 AJAX 行为。试试这个:
@using (Ajax.BeginForm("GetEnvironment", new RouteValueDictionary { { "Environment", Model.Environnements } }, new AjaxOptions() { UpdateTargetId = "ExportDiv" },new {id = "ajaxForm"))
{
@Html.DropDownListForEnum(x => x.Environnements, new { onchange = "submitAjaxForm()" })
}
<div id="ExportDiv">
@Html.Partial("Export")
</div>
<script type="text/javascript">
$('form#ajaxForm').submit(function(event) {
eval($(this).attr('onsubmit')); return false;
});
window.submitAjaxForm = function(){
$('form#ajaxForm').submit();
}
</script>
如果您正在使用它,您需要将脚本包含在它们自己的部分中。
关于javascript - MVC 更新部分 View onchange 下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22374629/