我有一个MVC应用程序,我在其中显示图像列表。 我的模特是:
@model IEnumerable<ImageGallery.Models.Image>
在同一个视图页面上,我有一个表单,用于向列表中添加新图像。
<input asp-for="Name" type="text" id="name" name="name" placeholder="Name">
<span asp-validation-for="Name" class="text-danger"></span>
这不起作用,因为“Name”是Image-class中的一个字段,但是该视图的模型是IEnumerable,我不能引用“Name”字段。这是怎么解决的?
答案 0 :(得分:1)
您需要另一个模型/视图模型来捕获添加新图像所需的数据。我通常有一个父视图模型,List和AddNew视图模型在同一级别保持在一起。
public class AddImageViewModel
{
[Required]
public string Title {get;set;}
[Required]
public string Description {get;set;}
}
public class MyImagesViewModel
{
public IList<Image> MyImages {get;set;}
public AddImageViewModel AddImage {get;set;}
}