对不起我的英语。将文件传输(图像)到服务器时出现问题。如果仅从页面上的一个表单传输到单个文件,那么一切都很好,但是当我尝试执行多个表单(使用 ajax)时,根本就传输数据。共有 7 个图像形式(尤其是数据库),每个都是典型模型:
public class Image
{
public int Id { get; set; }
public int ProductId { get; set; }
public int Number { get; set; }
public HttpPostedFileBase Data { get; set; }
public byte[] Img { get; set; }
public string MIMEType { get; set; }
}
Img - 从数据库获取数据的属性,数据 - 从页面设置
“共同”观点:
@for (int i = 1; i < 8; i++)
{
<div id="image-@i">
@Html.Partial("EditImage", new Image() { Id = Model.Imgs[i-1], Number = i, ProductId = Model.Id })
</div>
<div class="clear"></div>
}
主要问题,查看“EditImage”:
@model Image
@using (Ajax.BeginForm("EditImage", "Product", null, new AjaxOptions()
{
Url = "/Product/EditImage",
HttpMethod = "Post",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "image-" + Model.Number.ToString()
}, new { enctype = "multipart/form-data" }))
{
@Html.HiddenFor(model => model.MIMEType)
@Html.HiddenFor(model => model.ProductId)
@Html.HiddenFor(model => model.Id)
@Html.HiddenFor(model => model.Number)
<div class="mini-image left">
<img src="@Url.Action("Image", "Home", new { Id = Model.Id })" />
</div>
<input type="file" name="Data" />
<input id="ok-@Model.Number" type="submit" value="Send"/>
<input id="del-@Model.Number" type="reset" value="Cancel"/>
}
我在第一行设置断点。属性“ProductId”和“Number”被传递。数据为空 :( 我尝试 set id="Data", id="Data@(Model.Number)" 失败。
更新:这比我想象的要难,Request.Files.Count 等于 0