我需要上传一个csv文件,我想将它的扩展名限制为.csv
[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 }