当前位置:  开发笔记 > 编程语言 > 正文

上传的HttpPostedFile为null

如何解决《上传的HttpPostedFile为null》经验,为你挑选了2个好方法。

在视图上:

<% =Html.BeginForm("About", "Home", FormMethod.Post, new {enctype="multipart/form-data "})%>
  
  
<% Html.EndForm(); %>

在Controller中,有这样的东西:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult About(HttpPostedFile postedFile)
{
    //but postedFile is null 
    View();
}

postedFile在About()中为null.我如何上传文件?



1> Carl Hörberg..:

使用HttpPostedFileBase(不是HttpPostedFile)并将参数命名为与表单完全相同.例如.如果你有


你必须有方法头:

public ActionResult About(HttpPostedFileBase file1)


我有完全相同的问题,一旦将我的动作参数类型从`HttpPostedFile`更改为`HttpPostedFileBase`,它就可以了.所以应该强调这个建议.

2> Ben Robbins..:

这不能解释您的参数为空的原因,但您可以直接深入了解请求.尽管如此,这可能不是最"MVC"的方式.在你的方法体中试试这个:

var upload = Request.Files["postedFile"]
if (upload.ContentLength > 0)
{
  // Do whatever
}

要更加"MVC",您可以将代码从控制器中提取到IModelBinder实现中,并使用自定义对象作为方法的参数.这篇Scott Hanselman博客文章展示了实现自定义ModelBinder的步骤.

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有