当前位置: 首页 > 面试题库 >

带有OnComplete的Ajax.BeginForm始终更新页面

巢星纬
2023-03-14
问题内容

我在MVC中有简单的ajax形式。在AjaxOptions中,将OnComplete设置为简单的javascript函数,该函数执行一件事-返回false。

@using (Ajax.BeginForm("Action", "Controller", new AjaxOptions { UpdateTargetId = "DivFormId", HttpMethod = "Post", OnComplete = "preventUpdate" }))

function preventUpdate(xhr) {
    return false;       
}

问题是该页面已经更新。例如,在一种情况下,控制器在回发后返回部分视图,在另一种情况下,它返回一些Json对象。我希望它在返回部分视图时更新页面,并在返回json时显示对话框窗口。不幸的是,当返回json时,即使OnComplete函数返回false,它也会清除页面(使用json更新),如MSDN所说:若要取消页面更新,请从JavaScript函数返回false。

如何根据收到的响应阻止页面更新?

谢谢!

-----更新-------

到目前为止,我找到了以下解决方案。当我不指定UpdateTargetId时,我可以手动处理所需的响应。但是它仍然没有记录,返回false的行为。


问题答案:

使用OnSuccess并摆脱UpdateTargetId。像这样:

@using (Ajax.BeginForm("Action", "Controller", new AjaxOptions { HttpMethod = "Post", OnSuccess = "foo" }))
{
    ...
}

然后:

function foo(result) {
    if (result.SomePropertyThatExistsInYourJsonObject) {
        // the server returned a JSON object => show the dialog window here
    } else {
        // the server returned a partial view => update the DOM:
        $('#DivFormId').html(result);
    }
}


 类似资料:
  • 编辑的 Laravel版本:5.2.45 PHP版本:5.6 数据库驱动程序 你好 我完成了从laravel 5.1到5.2的更新,并解决了一些问题... 现在我尝试登录,但认证验证密码字段的密码,但在我的数据库密码有另一个名称是senha。 照亮/Auth/EloquentUserProvider.php 您可以看到,函数试图在凭据中找到字符串密码,而它应该是senha 同样的问题与valida

  • 问题内容: 我在这里看到了几个与sqlite更新有关的问题,但无法解决此问题。我无法更新表,它始终为0; 我可以插入和获取数据,但是更新时只有问题。 PS我也试过execSql() 问题答案: 听起来好像没有什么符合您的标准。也许作为测试,您应该通过null作为where条件(这表示更新所有行),并查看是否仍返回0。 如果此后仍返回0,我将确保您实际上已将数据保存在数据库表中。

  • 我试图通过使用camel-ftp组件从远程ftp服务器获取文件。我正在使用blueprint开发我的示例。 如果我像组件主页(http://camel.apache.org/ftp.html)中的示例那样实现它,我对此没有问题。 我的问题是,当我只能将该组件用作comsumer时,它总是监听远程目录。 http://www.osgi.org/xmlns/blueprint/v1.0.0http:/

  • 问题内容: 我想从索引视图调用以下ajax.beginform后显示成功消息 这是我的结果div 而我的控制器是 但是,当我尝试此操作时,它将转到另一个视图InforMessage它不会更新结果div。没有Informessage存在。仍然会打开一个新页面,并显示消息“感谢您添加空缺”。如何解决此问题? 问题答案: 如果您重定向到另一个页面是因为您没有加载正确的脚本(或重复的脚本或它们的顺序错误)

  • 问题内容: 有人可以告诉我如何通过JavaScript修改或添加POST变量来刷新当前页面吗? 需要明确的是,我想在重新加载页面之前设置一些POST变量。 问题答案: 通过使用jQuery Ajax,您可以重新加载页面

  • 问题内容: 我有一个(Ruby on Rails 4)应用程序,并使用了一个PostgreSQL查询,该查询基本上查看机会表,在机会为’available =true’的行中随机搜索,并用’available = false’更新这些选定的行。每次用户单击“尝试机会”时,应用程序都会使用以下查询。 我已经苦苦挣扎了5天,但现在我已经设法大致了解了它的表现(严重):现在我需要知道如何对其进行更改。