ASP.NET MVC - 文件上载和模型绑定

时间:2010-01-26 21:25:57

标签: asp.net-mvc

我正在建立一个征文比赛页面。论文可以写成文本区域或者可以上传。我是asp.net mvc的新手,并且已经使用了Sanderson的Pro ASP.NET MVC框架。

我无法通过失败的字段验证来维护往返文件。

阅读this我将输入文件命名为与模型字段名称相同,并将其作为输入传递给控制器​​操作:

[AcceptVerbs(HttpVerbs.Post)]
public ViewResult SubmitEssay(Essay essay, bool acceptsTerms,
    HttpPostedFileBase essay_filepath,
    HttpPostedFileBase budget_filepath)
{
    if (!acceptsTerms)
        ModelState.AddModelError("acceptsTerms", 
                                 "You must accept the terms and conditions.");
    else
    {
        try
        {
            // stuff uploaded file values
            if (string.IsNullOrEmpty(essay.essay_filepath) 
                   && (essay_filepath!= null))
            {
                essay.essay_filepath = essay_filepath.FileName;
            }

            if (string.IsNullOrEmpty(essay.budget_filepath) 
                   && (budget_filepath != null))
            {
                essay.budget_filepath = budget_filepath.FileName;
            }

这本身就有用,但是当我去验证其他字段时,在往返时文件上传字段不再包含上传路径,这样当我重新提交时,填写必填字段后,没有发布的文件。

通过往返维护发布文件的最佳方法是什么?你甚至可以设置< input type =“file”/>的“值”。领域?我应该使用两个字段(一个隐藏)并使用jQuery设置文件输入字段吗?

其他人做了什么?

感谢。

1 个答案:

答案 0 :(得分:0)

答案是,正如您在评论中所看到的那样,我甚至不应该尝试这样做。相反,我将添加一个ValidationMessage,说因为有错误,所以必须再次选择该文件。