MVC文件上传验证

时间:2011-03-22 16:31:14

标签: asp.net-mvc validation file-upload

我有一个简单的情况,我有一个页面上传文件,进行一些导入。目前,我所拥有的只是在我的页面上输入文件。

这就是我的控制器看起来像

public ActionResult FileUpload()
{
    return View();
}

这就是我的观点

@{
     ViewBag.Title = "FileUpload";
 }
<h2>FileUpload</h2>
<form action="/Home/FileUpload" method="post" enctype="multipart/form-data">
<input type="file" id="newFile" name="newFile" />
<input type="submit" id="submitButton" value="Submit" />
</form>

这就是我的帖子行动的样子

[HttpPost]
    public ActionResult FileUpload(HttpPostedFileBase newFile)
    {
        if (newFile.ContentLength > 0)
        {
            //do stuff here
        }
        return View("Index");
    }

你当然会注意到这里没有提到模型,因为我找不到为这种情况创建模型的方法。我希望得到一些非常基本的验证,就像“请在上传之前选择一个文件”,这就是全部。

有没有办法实现这个目标?!

提前致谢

威尔

2 个答案:

答案 0 :(得分:3)

使用字符串属性newFile创建模型类并在其上放置一个Required。

在控制器中接受不是HttpPostedFile而是你的模型类。

答案 1 :(得分:1)

您应手动添加客户端验证:

<input type="file" data-val="true" data-val-required="please select a file" name="file" />
@Html.ValidationMessage("file")