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 }))
然后对你的控制器进行相应的修改。
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 }))
然后对你的控制器进行相应的修改。