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传入的数据有一个空文件名,至少根据这些帖子,解决这个问题的正确方法是在服务器代码中过滤掉它。通常,您应该始终不信任来自浏览器的数据,始终检查并过滤掉无效数据。