javascript - MVC 更新部分 View onchange 下拉列表

标签 javascript ajax asp.net-mvc-4 razor

我想在用户更改下拉列表的当前值时更新部分 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/

相关文章:

javascript - 在 CSS 中创建进度轮

javascript - 数字不断变化

javascript - 使用 $.getJSON 获取时如何编辑 observableArray 数据?

javascript - 通过 Controller 加载图像问题

c# - C#中如何使用SqlCommand和SqlDataReader返回Json结果

javascript - javascript 的第一次实现用了多长时间?

javascript - 使用 jQuery 通过类一次选择下一个元素

javascript - Ajax调用,Javascript Ajax调用和JQuery Ajax调用的区别

php - Magento:通过Ajax调用模板phtml文件

javascript - 验证 JQuery 中是否存在 URL