加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-4 – 无法获取MVC 4 FileExtensions属性来处理ViewM

发布时间:2020-12-15 23:52:43 所属栏目:asp.Net 来源:网络整理
导读:我需要上传一个csv文件,我想将它的扩展名限制为.csv 所以我将follow属性添加到我的ViewModel: [FileExtensions(ErrorMessage = "Must choose .csv file.",Extensions = "csv,txt")]public HttpPostedFileBase File { get; set; } 在我看来,我有以下几点: @
我需要上传一个csv文件,我想将它的扩展名限制为.csv

所以我将follow属性添加到我的ViewModel:

[FileExtensions(ErrorMessage = "Must choose .csv file.",Extensions = "csv,txt")]
public HttpPostedFileBase File { get; set; }

在我看来,我有以下几点:

@Html.TextBoxFor(m => m.File,new { type = "file"})
@Html.ValidationMessageFor(m => m.File)

但是,一旦它命中我的“ModelState.IsValid”检查它返回无效,我的错误消息是“必须选择.csv文件”.

我假设我只是缺少一个参数,但我还没有找到任何使用它的样本.

解决方法

问题是FileExtensionsAttribute仅适用于字符串变量.检查HttpPostedFileBase变量的文件扩展名的最简单方法是使用 this simple attribute.它解决了我的问题.

唯一的缺点是这个新属性只在服务器端验证,所以不要忘记检查模型状态:

if (ModelState.IsValid)
{
  // Do the work
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读