2014-09-19 8 views
0

Я пытаюсь вставить изображение на сервер, с точки зрения я использую MVC2, мой код:Html.BeginForm метод пост обыкновение вызов

<% using (Html.BeginForm("Upload", "Main", FormMethod.Post, new { enctype = "multipart/form-data" })) 
{%><br /> 
    <input type="file" name="files" id="file1" size="25" /> 
    <input type="submit" value="Upload file" />  
<% } %> 

В MainController я использую:

[HttpPost] 
    public ActionResult Upload() 
    { 
     foreach (string inputTagName in Request.Files) 
     { 
      HttpPostedFileBase file = Request.Files[inputTagName]; 
      if (file.ContentLength > 0) 
      { 
       string filePath = Path.Combine(HttpContext.Server.MapPath("../Images") 
         , Path.GetFileName(file.FileName)); 
       file.SaveAs(filePath); 
      } 
     } 
    } 

Но когда я перейти на submit кнопку ничего не случилось, я пытаюсь отладить, и я вижу, что public ActionResult Upload не звонят. Что может быть проблемой?

Thanx

+3

«Ничего не происходит» является довольно расплывчатым описанием поведения. Если браузер не публикует форму вообще, это не имеет никакого отношения к вашему серверному коду. Каков итоговый HTML-код на стороне клиента? Есть ли какой-либо JavaScript, перехватывающий сообщение формы? Есть ли ошибки в консоли JavaScript? Любой запрос отправлен на сервер вообще? Каков ответ на этот запрос? Существует * много * отладки, которую вы можете сделать здесь. – David

+0

Я действительно не получаю, если вы пишете свой код в VS, это дает вам ошибку, что ваш метод не имеет возвращаемого значения, для этого вам нужен stackoverflow? Или вы не вложили весь свой метод? – theLaw

+0

Я пробовал этот код и работал хорошо, но ваш код имеет одну ошибку вы ошибаетесь, вы выбрали для своего использования HttpContext.Server.MapPath («../ Images»), это должен быть HttpContext.Server.MapPath (" ~/Images/") – Yehia

ответ

3

Ваш код не будет компилироваться, вам необходимо вернуть ActionResult внутри действий, т.е.

[HttpPost] 
    public ActionResult Upload() 
    { 
     foreach (string inputTagName in Request.Files) 
     { 
      HttpPostedFileBase file = Request.Files[inputTagName]; 
      if (file.ContentLength > 0) 
      { 
       string filePath = Path.Combine(HttpContext.Server.MapPath("../Images") 
         , Path.GetFileName(file.FileName)); 
       file.SaveAs(filePath); 
      } 
     } 
     // Below line is missing 
     return View(); 
    } 
+1

Перейти на hutcho;) – mattytommo