Dropdownlist客户端需要验证(没有型号)

 IT狂人 发布于 2023-02-10 11:24

查看:

@Html.DropDownList("CategoryItems", null, new { @class = "ddlcs" })
@Html.ValidationMessage("CategoryItems")

控制器:

var cat = from s in db.CategoryDbSet
          where s.IsActive == true
          orderby s.CatName
          select new { s.CatID, s.CatName };

var catListItems = cat.ToList()
                      .Select(c => new SelectListItem   
                             {
                                 Text = c.CatName,
                                 Value = c.CatID.ToString()
                             })
                       .ToList();

catListItems.Insert(0, new SelectListItem 
                           {
                               Text = "[--Select the category--]", 
                               Value = "" 
                           });

ViewBag.CategoryItems = catListItems;

当有人在保存操作期间选择"选择类别"选项时,我希望对下拉列表强制执行所需的验证.我是MVC框架的新手,我不确定我在哪里犯这个错误?此下拉列表与模型无关.

请提出解决方案.

1 个回答
  • 此下拉列表与模型无关.

    那是错误的.ASP.NET MVC中的验证通过使用相应属性修饰视图模型属性来工作.例如,如果要使此下拉列表成为必需,则可以使用该[Required]属性修饰视图模型上的相应属性.

    因此,为现有视图模型添加必要的属性:

    public class MyViewModel
    {
        [Required]
        public int? SelectedCategoryId { get; set; }
    
        public IEnumerable<SelectListItem> Categories { get; set; }
    
        ... some other properties that your view might need
    }
    

    然后在您的控制器操作中填充此视图模型:

    var model = new MyViewModel();
    model.Categories = cat
        .ToList()
        .Select(c => new SelectListItem   
        {
            Text = c.CatName,
            Value = c.CatID.ToString()
        }).ToList();
    
    return View(model);
    

    并在您的视图中使用强类型版本的帮助程序:

    @Html.DropDownListFor(
        x => x.SelectedCategoryId,
        Model.Categories, 
        "[--Select the category--]", 
        new { @class = "ddlcs" }
    )
    @Html.ValidationMessageFor(x => x.SelectedCategoryId)
    

    2023-02-10 11:30 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有