Asp.net 视图数据不显示在局部视图中
大家好,我有一个返回部分视图的控制器,该控制器由ajax脚本调用。partical视图在第一次显示viewdata时没有问题,但是当第二次调用ajax脚本时,partical视图不会使用新的viewdata对其进行自我更新 控制器代码Asp.net 视图数据不显示在局部视图中,asp.net,asp.net-mvc,asp.net-mvc-2,Asp.net,Asp.net Mvc,Asp.net Mvc 2,大家好,我有一个返回部分视图的控制器,该控制器由ajax脚本调用。partical视图在第一次显示viewdata时没有问题,但是当第二次调用ajax脚本时,partical视图不会使用新的viewdata对其进行自我更新 控制器代码 [HttpGet] public ActionResult getPart(int id) { ViewData["partical"] = id; return PartialView("test");
[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>
$(文档).ready(函数(){
$(“#下拉列表”).change(函数(){
var课程=$(“#下拉列表>选项:选定”).attr(“值”);
$.ajax({
键入:“GET”,
url:“/Reservation/getPart”,
数据:{id:course},
成功:功能(数据){
$(“#外部框”)。替换为(数据);
}
});
});
});
可能是缓存问题。请尝试HTTP POST,而不是获取或将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”).replacetwith(data)解决了该问题
与$('#ExtraBox').html(数据)代码>可能是缓存问题。尝试HTTP POST而不是GET.TREATED两者似乎都不起作用:(尝试调试您的代码?您可以发布您得到的HTTP响应(标头等)吗?我通过添加断点进行调试,每次调用ajax脚本时,调用都会落在控制器getpart()中使用新值。但是返回的视图显示了以前的值。您可以查看HTTP响应吗?例如,在chrome上,通过网络选项卡下的CTRL+SHIFT+I
。