Fileupload仅适用于Index action(ASP.Net MVC)

时间:2011-05-12 08:34:40

标签: asp.net-mvc-3 file-upload

我有简单的控制器,有两个动作:

public class TestController : Controller
{
      // /Test
      public ActionResult Index()
      {
          return View();
      }
      [HttpPost]
      public ActionResult Index(HttpPostedFileBase file)
      {    
          bool b = file == null; //there will be false
          return RedirectToAction("Index");
      }

      // /Test/Wonder
      [HttpGet]
      public ActionResult Wonder()
      {
          return View();
      }        
      [HttpPost]
      public ActionResult Wonder(HttpPostedFile file)
      {
          bool b = file == null; //there will be TRUE!
          return RedirectToAction("Wonder");
      }
}

我对自己的行为有类似的看法。 指数行动:

<h2>Index</h2>
<form action="" method="post" enctype="multipart/form-data">  
  <input type="file" name="file" id="file" />
  <input type="submit" />
</form>

奇迹行动:

<h2>It's wonder!</h2>
<form action="" method="post" enctype="multipart/form-data">  
  <input type="file" name="file" id="file" />
  <input type="submit" />
</form>

为什么第一个表单(索引)向控制器提交正确的文件,但是第二个表单(Wonder)向控制器提交null?

1 个答案:

答案 0 :(得分:1)

您的索引ActionResult接收HttpPostedFileBase对象作为参数,而Wonder ActionResult接收HttpPostedFile对象作为参数。