1

私はjqueryファイルアップローダーを使用しています(ブルーインプあたり)、私はindex.cshtml以外の特定のhttpポストバックにポストバックをどのように向けることができるのでしょうか(投稿はデフォルトでindex.cshtmlに行きます)jqueryを取得する方法[httpPost] index.cshtml()以外の指定されたアクションをポストバックするファイルアップロード?

たとえば、[ホーム/バルク]を呼び出すときに、ファイルを選択した後、ポストバックは[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:' @ Url.Action( "Bulk"、 "Home") 'は正しいURL生成のためのものです。どうも! – JaJ

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"); 
} 

EDIT

ああ、私は参照してください。これは、あなたのhtmlフォームが正しく設定されていない可能性が高いためです。 Darinが示唆するように、あなたはjQueryを使うことができます。あなたはHTMLヘルパーを使用したい場合しかし、あなたはこれを行うことができます:それは、ファイルがコントローラに送信できるようにすることが容易と

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

マルチパート/フォームのデータが重要です。示すために、プラグインを設定するとき

+0

こんにちは、ないではないポスト後。投稿は常にバルクハンドラではなくインデックスに戻ってきます(バルクビューから)。 – JaJ

+0

@JaJ - さて、質問から私には分かりませんでした。ヘルパーを設定する方法については、私の編集を参照してください。 –

関連する問題