我已经为应用程序实现了一个图像上传子操作表单。我有一个强类型的局部视图。
public class ImageViewModel{
public long ImageId{get;set;}
public long OwnerId{get;set;}
public string ImageName{get;set;}
public string ImageDescription{get;set;}
public IEnumerable<HttpPostedFileBase> Files { get; set; }
}
Razor 代码如下所示:
<form action="UploadImage" method="post" enctype="multipart/form-data">
@Html.ValidationSummary()
@Html.HiddenFor(m => m.OwnerId)
@Html.HiddenFor(m => m.ImageId)
@HtmlEditorFor(m=>m.ImageName)
<input type="file" name="Files" id="file0" />
<input type="submit" value="Upload" />
</form>
这是问题所在。当表单被回发时,模型已经上传了文件和 ImageName 值。但是缺少使用 HiddenFor 绑定的值。
[HttpPost]
public ActionResult UploadImage(ImageViewModel model)
{ ...}
我已经检查了 HTML 源代码。隐藏字段使用与模型命名的属性匹配的 ID 和名称进行更正。在回邮时,我检查了原始请求。两个隐藏字段都在表单集合中进行。但是模型绑定并没有在属性中设置这些字段的值。这些隐藏字段有什么我遗漏的吗?
谢谢