【发布时间】:2013-02-05 22:45:26
【问题描述】:
我需要上传一个 csv 文件,并且我想将其扩展名限制为 .csv
所以我在 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 文件”。
我假设我只是缺少一个参数,但我还没有在任何地方找到这个使用的示例。
【问题讨论】:
-
如何在视图中使用文本框上传文件?因为我从来没有那样尝试过。我用
<input type="file"..来做到这一点 -
@Karthik Fair 问题。当它生成 html 时,您会得到
<input type="file"并且该部分有效。如果我删除验证约束,文件将按预期上传。 -
FileExtensions属性是什么?它来自哪里?这不是 ASP.NET MVC 内置的东西。 -
@DarinDimitrov 这是 .net 4.5 msdn 中的一个新属性,它似乎不适用于 MVC:stackoverflow.com/questions/8536589/…
-
@nemesv,好点子。我不知道那个属性。投票以重复结束。
标签: asp.net-mvc-4 data-annotations