jQuery-调用同一页面但具有不同的模型数据

时间:2019-06-25 22:46:21

标签: jquery asp.net-mvc asp.net-core

想象一下这在您的控制器中:

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"

一切正常。

谢谢。

1 个答案:

答案 0 :(得分:1)

如果您需要重新加载整个页面,则可以使用location.href

如果您想通过Ajax刷新网格,则网格代码也需要处于局部视图中,类似于模态对话框。