我正在使用jquery文件上传器(每个blueimp)而且我想知道如何将回发指向特定的http帖子而不是index.cshtml(默认情况下post会转到index.cshtml)?< / p>
例如,在调用Home / Bulk时......然后在选择文件后,回发默认为[httppost] index.cshtml()...如何将其指向[httppost] bulk.cshtml()? THX!
查看(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();
}
}
答案 0 :(得分:5)
您可以在设置插件时使用url
属性来指示您希望其提交的操作:
$('#fileupload').fileupload({
url: 'home/bulk',
done: function (e, data) {
}
});
答案 1 :(得分: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表单设置不正确。正如Darin所说,你可以使用jQuery。但是,如果你想使用html帮助器,你可以这样做:@using (Html.BeginForm("Bulk", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
multipart / form-data非常重要,因为它有助于将文件发送到控制器。