我有简单的控制器,有两个动作:
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?
答案 0 :(得分:1)
您的索引ActionResult接收HttpPostedFileBase对象作为参数,而Wonder ActionResult接收HttpPostedFile对象作为参数。