1

我正在使用jquery文件上傳(每blueimp),我想知道如何我可以直接回發到一個特定的http回發除index.cshtml之外(默認情況下,發佈index.cshtml)?如何獲得jquery文件上傳來回發除[httpPost] index.cshtml()以外的指定動作?

例如,當調用Home/Bulk ...時,選擇文件後回發默認爲[httppost] index.cshtml()...我怎樣才能將它指向[httppost] bulk.cshtml()?謝謝!

視圖(Bulk.cshtml):

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<script src="@Url.Content("~/Scripts/jquery.ui.widget.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.iframe-transport.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.fileupload.js")" type="text/javascript"></script> 


@using (Html.BeginForm("Bulk", "Home")) // I want this to direct back to httppost:bulk handler 
{ 
<input id="fileupload" type="file" name="files" multiple="multiple"/> 
} 

控制器:

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     return View(); 
    } 

    [HttpPost] 
    public ActionResult Index(IEnumerable<HttpPostedFileBase> files) 
    { 
     foreach (var file in files) 
     { 
      var filename = Path.Combine(Server.MapPath("~/App_Data"), file.FileName); 
      file.SaveAs(filename); 
     } 
     return View(); 
    } 

    public ActionResult Bulk() 
    { 
     return View(); 
    } 

    [HttpPost] 
    public ActionResult Bulk(IEnumerable<HttpPostedFileBase> files) 
    { 
     foreach (var file in files) 
     { 
      var filename = Path.Combine(Server.MapPath("~/App_Data"), file.FileName); 
      file.SaveAs(filename); 
     } 
     return View(); 
    } 

} 

回答

5

設立時的插件來表明你可以使用url屬性到行動你希望它提交:

$('#fileupload').fileupload({ 
    url: 'home/bulk', 
    done: function (e, data) { 
    } 
}); 
+0

是的,工作很好。我剛剛添加了網址:'url:'@ Url.Action(「Bulk」,「Home」)'以生成正確的網址。謝謝! – JaJ 2012-04-03 13:35:47

1

您是不是要找你想要的職位後重定向?也許像這樣使用Post-Redirect-Get模式。注意不同的回報。

[HttpPost] 
public ActionResult Bulk(IEnumerable<HttpPostedFileBase> files) 
{ 
    foreach (var file in files) 
    { 
     var filename = Path.Combine(Server.MapPath("~/App_Data"), file.FileName); 
     file.SaveAs(filename); 
    } 
    return RedirectToAction("Bulk"); 
} 

編輯

啊,我明白了。這很可能是因爲你的html表單沒有正確設置。正如達林所說,你可以使用jQuery。但是,如果你想使用的HTML輔助你可以這樣做:

@using (Html.BeginForm("Bulk", "Home", FormMethod.Post, new { enctype = "multipart/form-data" })) 

多重表單/數據是非常重要的,因爲它有利於使文件被髮送到控制器。

+0

嗨,無不是之後,該帖子。該帖子總是回到索引,而不是批量處理程序(從批量視圖)。 – JaJ 2012-04-03 03:38:18

+0

@JaJ - 好的,我不清楚這個問題。查看我的編輯以瞭解如何設置助手。 – 2012-04-03 19:42:49

相關問題