Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 文件输入为空,但Request.Files中显示一个空的“文件”_Asp.net_Asp.net Mvc - Fatal编程技术网

Asp.net 文件输入为空,但Request.Files中显示一个空的“文件”

Asp.net 文件输入为空,但Request.Files中显示一个空的“文件”,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,我有一个具有以下文件输入的视图: <input type="file" name="SchemaFiles" id="SchemaFiles" class="form-control" multiple/> 我的模型具有以下属性: public List<HttpPostedFileBase> SchemaFiles { get; set; } 当我为此输入选择一个或两个文件时,一切正常。但是,如果我没有选择任何文件并提交表单,则SchemaFiles.Count

我有一个具有以下文件输入的视图:

<input type="file" name="SchemaFiles" id="SchemaFiles" class="form-control" multiple/>
我的模型具有以下属性:

  public List<HttpPostedFileBase> SchemaFiles { get; set; }
当我为此输入选择一个或两个文件时,一切正常。但是,如果我没有选择任何文件并提交表单,则SchemaFiles.Count为1,SchemaFiles[0]为null但确实存在。ModelState.IsValid为true


有没有办法避免这种情况?

这是出于设计考虑的,看起来根本原因是浏览器。 请参见以下链接以供参考:

ASP.NET工作项: 第条:及 博客文章:
不要添加无关语言的标记!模型中的代码是c。我想这更像是一个asp.net-mvc问题。这真的值得否决吗?而你添加了C标记-为什么?我必须输入C标记。我会看看浏览器是否有错误报告或解释。我认为大多数浏览器都会这样做,可能是遗留的原因。我的观点是,当没有选择任何文件时,通过HTTP传入的数据有一个空文件名,至少根据这些帖子,解决这个问题的正确方法是在服务器代码中过滤掉它。通常,您应该始终不信任来自浏览器的数据,始终检查并过滤掉无效数据。