【问题标题】:ASP MVC IEnumerable<Image> model - validation for creating a new ImageASP MVC IEnumerable<Image> 模型 - 验证创建新图像
【发布时间】:2016-04-22 09:50:09
【问题描述】:

我有一个 MVC 应用程序,我在其中显示图像列表。 我的模型是:

@model IEnumerable&lt;ImageGallery.Models.Image&gt;

在同一个视图页面上,我有一个用于将新图像添加到列表的表单。

<input asp-for="Name" type="text" id="name" name="name" placeholder="Name">
<span asp-validation-for="Name" class="text-danger"></span>

这不起作用,因为“名称”是图像类中的一个字段,但此视图的模型是 IEnumerable,我无法引用“名称”字段。这是怎么解决的?

【问题讨论】:

    标签: asp.net-mvc validation ienumerable


    【解决方案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;}
    }
    

    【讨论】:

    • 我可以添加新图像(只需有一个
      。问题是我想对字段进行验证。我是 ASP MVC 的新手 - 如何我制作了那个视图模型?所以我仍然有我的图像列表,但是 Image 类的字段要引用以进行验证
    • 我已经更新了我的答案。添加新图像和列出现有图像是不同的事情,因此需要不同的模型
    猜你喜欢
    • 2022-01-13
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 2014-11-08
    • 2010-11-18
    • 2011-06-01
    • 1970-01-01
    • 2021-01-29
    相关资源
    最近更新 更多