ASP.NET MVC - 重新加载PartialView后丢失元素的JS引用

时间:2013-07-29 12:09:20

标签: jquery asp.net-mvc partial-views

我有这种情况:在选择任何国家/地区后重新加载“州”div内容的国家/地区下拉列表。

@Html.DropDownListFor(m => m.SelectedCountry, 
new SelectList(Model.Countries, "CountryId", "CountryName", Model.SelectedCountry))

<div id="states">
    @Html.Partial("Partial/States", Model)
</div>

<script type="text/javascript">
    $(document).ready(function() {

        $('#SelectedCountry').change(function() {

            if ($(this).val() !== "-1") {

                $.get('@Url.Action("LoadStates", "Controller")', 
                $('#form').serialize(), function(result) {
                    $('#states').html(result);
                });
            }
        }
    });
</script>

好的,它完美无缺。我的问题是当我重新加载这个PartialView时,内容丢失了它的CSS样式,我在JS引用上找不到它。我有这个功能,可以根据所选的下拉值启用按钮。

<script type="text/javascript">
    function canEnableButton() {
        //...
    }

    $('#SelectedCountry, #SelectedState').change(function() {
        canEnableButton();
    }
</script>

change() jQuery函数的第一个加载页面。当我重新加载时,此功能停止工作,CSS样式消失。

任何人都知道可以做什么?谢谢!

2 个答案:

答案 0 :(得分:0)

早上好,尝试更改事件绑定以使用jquery .on binding:

$('#SelectedCountry').on('change', function() {
    ...
});

$('#SelectedCountry, #SelectedState').on('change', function() {
    ...
});

答案 1 :(得分:0)

您可以在PartialView

中添加js和css引用