单击提交文件上载按钮时仅更新部分视图

时间:2014-02-27 07:01:56

标签: asp.net-mvc partial-views ajax-forms

我有一个允许用户提交文件的部分视图。

<form action="Attachments" method="post" enctype="multipart/form-data" target="_self">
    <div>
        <label style="text-align: left;">Add File:</label>
    </div>
    <div>
        <input type="file" name="file" id="file" style="width: 275px;" />
    </div>
    <div style="text-align: right;">
        <input type="submit" value="Add"/>
    </div>
</form>

这将调用HTTPPost的AttachmentsController方法

[HttpPost]
public ActionResult Index(HttpPostedFileBase file)
{

    if (file.ContentLength > 0)
    {
        var fileName = Path.GetFileName(file.FileName);
        var path = Path.Combine("C:\\Attachments", fileName);
        file.SaveAs(path);

        return AddAttachment(fileName);
    }

    return RedirectToAction("Failed", "Attachments");
}

addAttachment返回“return RedirectToAction(”Index“,”Attachments“);” 完成所有这些以添加附件后,整个屏幕都会刷新,我只想要部分视图来添加刷新的附件。我怎样才能做到这一点!?

1 个答案:

答案 0 :(得分:2)

您应该通过ajax请求发布您的文件。当服务器返回响应时,只更新必要的页面部分。

有一个很好的表单插件,允许您异步发送HTML表单http://malsup.com/jquery/form/

$(document).ready(function() { 
    $('#myForm1').ajaxForm(); 
});

$("someButton").click(function(){
    $('#myForm1').ajaxSubmit();
});