0

对不起我的英语。将文件传输(图像)到服务器时出现问题。如果仅从页面上的一个表单传输到单个文件,那么一切都很好,但是当我尝试执行多个表单(使用 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

4

1 回答 1

0

我只需要使用一些 javascript 库来通过 ajax 上传文件。JQuery ajax 函数无法以某种方式发送文件。

于 2013-08-05T14:12:17.200 回答