Предполагая, что у вас есть маршрут, определенный для этого пользовательского URL:
routes.MapRoute(
"Upload",
"person/{uniqueid}/files",
new { controller = "Upload", action = "UploadFile" }
);
, вам просто нужно дать входному файлу имя:
<div><input id="fileUpload" type="file" name="file" /></div>
Также я бы порекомендовал вам использоватьАргументы действия вместо циклического перебора Request.Files
:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult UploadFile(int uniqueID, HttpPostedFileBase file)
{
return View();
}
и, если вы хотите опубликовать несколько файлов:
<div><input type="file" name="files" /></div>
<div><input type="file" name="files" /></div>
<div><input type="file" name="files" /></div>
...
, используйте коллекцию:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult UploadFile(int uniqueID, IEnumerable<HttpPostedFileBase> files)
{
return View();
}
Вы также можете найти следующий пост в блоге полезным.
Или, что еще лучше, использовать модель представления:
public class MyViewModel
{
public int UniqueID { get; set; }
public IEnumerable<HttpPostedFileBase> Files { get; set; }
}
, а затем:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult UploadFile(MyViewModel model)
{
return View();
}