MVC - 输入提交导致自动重定向

时间:2012-09-16 19:44:34

标签: asp.net-mvc asp.net-mvc-3

我有以下表格

<form id="file_upload" action="/Upload/Save" method="POST" enctype="multipart/form-data">
<input type="text" id="txtProposalName" name="name" placeholder="Nome da Camiseta" />
<input type="text" id="txtProposalDesc" name="description" placeholder="Descrição da Camiseta"/>
<div class="fileupload-buttonbar">
    <div class="progressbar fileupload-progressbar"></div>
    <span class="fileinput-button">
        <a href="javascript:void(0)" class="upload-image">Upload images</a>
        <input type="file" name="files[]" multiple />
    </span>
</div>
<input type="hidden" id="imgID" name="imgID"/>
<input type="submit" id="postProposal"/>

会调用此操作:

[HttpPost]
    public JsonResult Save(string name, string description, string imgID)
    {
        return Json("a");
    }

(这是当前的实现,它没有逻辑,因为我还在测试一些东西)。

我的问题是:当我点击我的提交按钮时,会使用正确的值调用操作,但是当它返回时,我的浏览器会重定向到/ Upload / Save(这是操作URL)。 为什么会这样?有什么办法可以阻止吗?

谢谢!

4 个答案:

答案 0 :(得分:1)

您可以使用对方法的异步调用(例如AJAX)来阻止页面重新加载。

答案 1 :(得分:1)

我可以看到您使用完整页面重新加载:

    action="/Upload/Save"

此外,您尝试将数据发布到控制器中的json操作方法。你需要使用jquery提交所有表单make,使用ajax文件上传器可以找到大多数问题。

<强>加了: 另请查看serialize()它将帮助您收集所有表单输入值。

答案 2 :(得分:1)

您可以使用Ajax.BeginForm来阻止重新加载页面。

答案 3 :(得分:0)

不需要阻止它,只需重定向您的服务器代码中的用户。