如何加载包含JavaScript的局部视图?

Jat*_*tin 13 javascript asp.net-mvc jquery asp.net-mvc-3

在我的一个View页面中,我有一个asp.net mvc PartialView.PartialView包含一些javascript(和jquery).在我的asp.net主视图中,我使用ajax在div标签内加载PartialView,如下所示.也就是说,从控制器I返回PartialView("_ DonorEdit"),在我的主页面中,我使用javascript将Part标签的内容替换为PartialView响应.

<div class="content" id="content">
    @{Html.RenderPartial("_DonorEdit");}   
</div>
Run Code Online (Sandbox Code Playgroud)

除了partialView(_DonorEdit)中包含的javascript之外,一切正常.因此,问题归结为 - 如何在div标签中嵌入javascript并仍然使其正常工作.

仅当从ajax调用返回部分视图时,才会出现此问题.在上面的代码中,如果我直接包含PartialView(在非ajax请求上),那么javascript正常工作.但是如果我稍后使用ajax请求替换div的内容,则PartialView中包含的javascript不起作用.嵌入式javascript根本不会与"部分视图"一起显示.所以似乎有一些其他原因,为什么在ajax请求成功之后,部分视图中嵌入的javascript不会传递给浏览器.

我的javascript代码的一部分

<script type=...>
//Date Picker. This works. I get Calendar popup as expected

$(document).ready(function () {
    $("#Donor_BirthDate").datepicker({
        dateFormat: "dd-mm-yy",
        changeMonth: true,
        changeYear: true,
        yearRange: "-75:+0"
    });

    $("#Donor_DateLastDonated").datepicker({
        dateFormat: "dd-mm-yy",
        changeMonth: true,
        changeYear: true,
        yearRange: "-20:+1"
    });
});


//Dropdown handler. Does not make it in my final View.

function residenceStateChanged(e) {
    var url = '@Url.Action("_GetCities", "DropDown")';
    var cmbResidenceCityId = $('#ResidenceCityId').data('tDropDownList');
    cmbResidenceCityId.loader.showBusy();

    $.ajax({
        type: 'GET',
        url: url,
        data: { StateId: e.value, AddSelectOption: true, SelectOption: 'Select' },
        traditional: true,
        success: function (resp, textStatus, jqXHR) {
            cmbResidenceCityId.dataBind(resp);
            cmbResidenceCityId.select(0);
            cmbResidenceCityId.trigger.change();
        },
        error: function (jqXHR, textStatus, errorThrown) {
            alert(jqXHR.responseText);
        },
        complete: function () {
            cmbResidenceCityId.loader.hideBusy();
        }
    });
}

....//Some other code omitted. Does not make it in final view.
</script>
Run Code Online (Sandbox Code Playgroud)

lea*_*ing 0

在ajax成功部分调用javascript函数