2011-01-22 10 views
2

ページコードを動作していないファイルアップロードASP.NET MVC3は

<% using (Html.BeginForm()) 
    { %> 
<fieldset> 
    <legend>上传项目材料</legend> 
    <input type="file" name="File1" /> 
    <input type="submit" value="上传" /> 
</fieldset> 
<%} %> 

アクションコード

[HttpPost] 
public ActionResult FileUpLoad(int id, FormCollection form) 
{ 
    try 
    { 
     var model = db.ProjcetDeclare.First(c => c.id == id); 

     if (Request.Files.Count==0) 
     { 
      return View(); 
     } 
     string newFile=string.Empty; 

     var File1 = Request.Files[0]; 
     if (File1.ContentLength == 0) 
     { 
     } 
     newFile = model.Project.pname + DateTime.Now.ToString("yyyyMMddHHmmss") + Path.GetFileName(File1.FileName); 
     File1.SaveAs(Server.MapPath("/项目材料/" + newFile)); 

     model.XMCL = "/项目材料/" + newFile; 
     UpdateModel(model); 
     db.SaveChanges(); 
     return RedirectToAction("Index"); 
    } 
    catch 
    { 
     return View(); 
    } 
} 

私は しようとしているが、Request.Files.Count == 0が見つからない ファイル なぜ真実であります?

答えて

17

今週初めにこの問題に遭遇しました。フォームタグにHTML属性(enctype)が指定されていないため、サーバーにファイルを送信しています。ここに解決策があります...

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