大家好我有控制器返回部分视图,控制器由ajax脚本调用。第一次显示viewdata时,partical视图没有问题,但是当第二次调用ajax脚本时,partical视图不会使用新的viewdata自行更新它。
控制器代码
[HttpGet]
public ActionResult getPart(int id)
{
ViewData["partical"] = id;
return PartialView("test");
}
部分视图的代码
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<PovertyBayHotel.Models.testmodel>" %>
<p>just a test</p>
<%: ViewData["partical"]%>
和调用控制器的ajax
<script type="text/javascript">
$(document).ready(function () {
$("#DropDown").change(function () {
var course = $("#DropDown > option:selected").attr("value");
$.ajax({
type: 'GET',
url: '/Reservation/getPart',
data: { id: course },
success: function (data) {
$('#ExtraBox').replaceWith(data);
}
});
});
});
</script>
答案 0 :(得分:1)
可能是一个缓存问题。尝试HTTP POST而非GET,或将ifModified
和cache
选项设置为false
,如下所示:
$("#DropDown").change(function () {
var course = $("#DropDown > option:selected").attr("value");
$.ajax({
type: 'GET',
ifModified: false,
cache: false,
url: '/Reservation/getPart',
data: { id: course },
success: function (data) {
$('#ExtraBox').replaceWith(data);
}
});
另外,尝试调试代码,看看到底发生了什么。
修改强>
使用$('#ExtraBox').replaceWith(data);
更改$('#ExtraBox').html(data);
已解决问题。