Razor RenderPartial生成错误的HTML

Razor RenderPartial生成错误的HTML,razor,asp.net-core,Razor,Asp.net Core,我有一个页面项目编辑多个部分呈现形式的图像删除。项目编辑页面: @model EditModel <form method="post" enctype="multipart/form-data"> <input asp-for="ItemModel.Id" type="hidden" /> <input asp-for="ItemModel.AllOtherFields" type="hidden" /> </form> @if

我有一个页面项目编辑多个部分呈现形式的图像删除。项目编辑页面:

@model EditModel
<form method="post" enctype="multipart/form-data">
    <input asp-for="ItemModel.Id" type="hidden" />
    <input asp-for="ItemModel.AllOtherFields" type="hidden" />
</form>
@if (Model.ItemModel.ImageViewModels != null && Model.ItemModel.ImageViewModels.Any())
{
    foreach(var imageViewModel in Model.ItemModel.ImageViewModels)
    {
       Html.RenderPartial("ItemImage/_itemImageEdit", imageViewModel);
    }
}
我不知道为什么
@Model.Id
会在同一个子视图上生成不同的Id

编辑1:

public class ItemImageViewModel
{
    [BindProperty]
    public int Id { get; set; }
    public string Title { get; set; }
    public int ItemId { get; set; }

}

public class ItemViewModel
{
    public ItemViewModel()
    {
    }
    public ItemViewModel(ItemViewModel vm)
    {
        Id = vm.Id;
        Title = vm.Title;
        ImageViewModels = vm.ImageViewModels;
    }
    public int Id { get; set; }
    public string Title { get; set; }
    public IEnumerable<ItemImageViewModel> ImageViewModels { get; set; }
}
公共类ItemImageViewModel
{
[BindProperty]
公共int Id{get;set;}
公共字符串标题{get;set;}
公共int ItemId{get;set;}
}
公共类ItemViewModel
{
公共项目视图模型()
{
}
公共ItemViewModel(ItemViewModel虚拟机)
{
Id=vm.Id;
Title=vm.Title;
ImageViewModels=vm.ImageViewModels;
}
公共int Id{get;set;}
公共字符串标题{get;set;}
公共IEnumerable ImageViewModels{get;set;}
}
我删除了不相关的字段。 调试器显示正常

现在,这段奇怪的代码生成了它应该生成的内容

<form action="@Url.Action("Delete", "Images", new { id = Model.Id })" method="post">
    <input type="hidden" id="Id" name="Id" value="@Html.DisplayFor(m => Model.Id)" />
    @Html.HiddenFor(m => Model.ItemId)"
    <img src="@Url.Action("Get", "Images", new { id = Model.Id })" />
    <input type="text" asp-for="@Model.Title" />
    <input type="submit" value="Delete" />
</form>


<form action="/Images/Delete/10" method="post" novalidate="novalidate">
    <input type="hidden" id="Id" name="Id" value="10">
    <input data-val="true" data-val-required="The ItemId field is required." id="ItemId" name="ItemId" type="hidden" value="5">"
    <img src="/Images/Get/10">
    <input type="text" id="Title" name="Title" value="Jacket">
    <input type="submit" value="Delete">
</form>

@Html.HiddenFor(m=>Model.ItemId)”
"

显示您的模型定义。@CodeCaster已更新
<img src="/Images/Get/10">
action="/Images/Delete/5"
public class ItemImageViewModel
{
    [BindProperty]
    public int Id { get; set; }
    public string Title { get; set; }
    public int ItemId { get; set; }

}

public class ItemViewModel
{
    public ItemViewModel()
    {
    }
    public ItemViewModel(ItemViewModel vm)
    {
        Id = vm.Id;
        Title = vm.Title;
        ImageViewModels = vm.ImageViewModels;
    }
    public int Id { get; set; }
    public string Title { get; set; }
    public IEnumerable<ItemImageViewModel> ImageViewModels { get; set; }
}
<form action="@Url.Action("Delete", "Images", new { id = Model.Id })" method="post">
    <input type="hidden" id="Id" name="Id" value="@Html.DisplayFor(m => Model.Id)" />
    @Html.HiddenFor(m => Model.ItemId)"
    <img src="@Url.Action("Get", "Images", new { id = Model.Id })" />
    <input type="text" asp-for="@Model.Title" />
    <input type="submit" value="Delete" />
</form>


<form action="/Images/Delete/10" method="post" novalidate="novalidate">
    <input type="hidden" id="Id" name="Id" value="10">
    <input data-val="true" data-val-required="The ItemId field is required." id="ItemId" name="ItemId" type="hidden" value="5">"
    <img src="/Images/Get/10">
    <input type="text" id="Title" name="Title" value="Jacket">
    <input type="submit" value="Delete">
</form>