想象一下这在您的控制器中:
public IActionResult Index(string SomeData = null)
{
return View("Index", SomeData);
}
Inside Index.cshtml是这样的:
@Html.HiddenFor(model => model, new { Id = "SomeData", Name = "SomeData" })
当用户导航到索引时,SomeData当然将为空。
加载后,用户可以单击一个按钮,该按钮将执行ajax调用,并在成功后弹出一个Bootstrap Modal对话框。在“模态对话框”关闭时,我想刷新页面,但是这次是从“模态对话框”中获取一些数据(首次加载时索引之前没有该数据):
$.ajax({
url: '/Test/Index',
type: 'GET',
data: {
SomeData: 'abcdef'
},
success: function (responseData, status, responseObj) {
console.log(responseData, status, responseObj);
},
async: false
});
这就是我所注意到的,我的断点甚至没有被击中。曾经但是,控制台告诉我我的ajax调用成功。没错,因为我搞砸了抛出异常和更改返回码的过程,而且一切正常,我一直都没碰到断点。
成功后,页面将不会刷新。好像什么也没有发生。所以还需要做其他事情。
模态对话框关闭后,如何用新的模型数据更新同一页面?由于正在使用网格,我需要刷新页面。因此,这不仅仅是设置隐藏字段并感到高兴的问题。我需要为页面加载设置隐藏字段,以便在OnDataBound事件中知道要执行我不会做的特定事情。
我的意思是,可能我想得太多。从模式对话框返回后,我想我可以做到这一点(而不是另一个ajax调用):
location.href = "/Test/Index?SomeData=abcdef"
一切正常。
谢谢。
答案 0 :(得分:1)
如果您需要重新加载整个页面,则可以使用location.href
。
如果您想通过Ajax刷新网格,则网格代码也需要处于局部视图中,类似于模态对话框。