首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MVC2 -使用AJAX和非AJAX提交表单

MVC2 -使用AJAX和非AJAX提交表单
EN

Stack Overflow用户
提问于 2012-02-10 12:32:45
回答 2查看 385关注 0票数 0

使用MVC2,我在视图中使用Ajax helper创建了一个表单。表单发布到绑定到模型对象的控制器。控制器返回一个PartialViewResult,并将其更新到div中。到现在为止还好。

现在,我需要提交相同的表单,并在生成的文件中返回结果供用户下载。显然,我不希望文件内容进入我的div。

有没有一种优雅的方法来处理这种情况,而不需要把它砍成碎片?我是MVC / AJAX的新手,对我来说这仍然是一个困惑的问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-10 22:11:56

好吧,我在任何地方都找不到任何简单的解决方案,所以我想出了我自己的解决方案。当我需要下载时,我从表单中删除了Ajax事件处理程序,当我需要Ajax时,我把它们放回去了。我猜有一种更优雅的方式来做到这一点,因为这感觉像是一个“聪明的把戏”。我对更好的建议持开放态度,但到目前为止,这是我首选的方法。

在我的页面上引用ToggleAjax.js:

代码语言:javascript
运行
复制
var ToggleAjax = function ($, form) {
    var onclick = form.onclick,
        onsubmit = form.onsubmit;

    $('input[class*="ajax-enabled"]').click(function () {
        form.onclick = onclick;
        form.onsubmit = onsubmit;
    });
    $('input[class*="ajax-disabled"]').click(function () {
        form.onclick = function () { };
        form.onsubmit = function () { };
    });
};

然后,我在我的页面上调用ToggleAjax并传入表单:

代码语言:javascript
运行
复制
$(function () {
    ToggleAjax($, $('form')[0]);
});

当然,我还向输入控件添加了ajax-enabledajax-disabled类。

票数 1
EN

Stack Overflow用户

发布于 2012-02-10 16:36:34

您不能使用ajax调用来下载文件。下面的链接可能会帮助你做你正在尝试做的事情,JQuery Ajax call for PDF file download

http://forums.asp.net/t/1683990.aspx/1

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9222722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档