我正在建立一个征文比赛页面。论文可以写成文本区域或者可以上传。我是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设置文件输入字段吗?
其他人做了什么?
感谢。
答案 0 :(得分:0)
答案是,正如您在评论中所看到的那样,我甚至不应该尝试这样做。相反,我将添加一个ValidationMessage,说因为有错误,所以必须再次选择该文件。