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)
| 归档时间: |
|
| 查看次数: |
20450 次 |
| 最近记录: |