MVC 将元素 ID 从视图传递到控制器

MVC Pass element id from view to controller

foreach (var item in Model)
{
    using (Html.BeginForm("PreviewImage", "Music", FormMethod.Post, new { @enctype = "multipart/form-data" }))
    {
        @Html.AntiForgeryToken()

        <input type="file" class="upload-image" id="upload-image-file_@item.Id" name="file" accept="image/*">
        <button class="btn btn-default" id="bt_@item.Id" style="display: none" type="submit"></button>
    }
}

如何将文件 ID 传递给控制器​​?

假设您想传回上传图片的路径 - 在您的控制器中,使用以下命令:

if (Request.Files.Count > 0)
{
         var file = Request.Files[0];

         if (file != null && file.ContentLength > 0)
         {
            var fileName = Path.GetFileName(file.FileName);
            var serverPath = Path.Combine(Server.MapPath("~/Images/"), fileName);
            file.SaveAs(serverPath);

         }
}

假设您在谈论 @item.Id 变量,您正在附加 Id,我会在此处添加 @item.Id

using (Html.BeginForm("PreviewImage", "Music", FormMethod.Post, new { @enctype = "multipart/form-data", @itemId = @item.Id }))

然后对你的控制器进行相应的修改。