gpt4 book ai didi

asp.net-mvc - 使用 (Html.ValidationMessage) 对 mvc 中的下拉列表进行简单验证

转载 作者:行者123 更新时间:2023-12-02 06:08:07 28 4
gpt4 key购买 nike

Controller

var productList = Enumerable.Range(1, 80).Select(
x => new SelectListItem { Value = x.ToString(), Text = x.ToString() }
);
ViewData["products"] = new SelectList(productList.ToList(), "Value", "Text");

查看

<%: Html.DropDownList("products", ViewData["products"] as SelectList, "--select--")%>
<%: Html.ValidationMessage("products", "Please Select the Product from the List")%>
//This doesnt works on (ModelState.IsValid) I know the dropdown list data is coming
//from the view data not model , thats why model doesnt validate the particular dropdown
//list while it validates other fields which are linked to model,
//Just want to know, how can i validate the above dropdownlist

最佳答案

您将 ddl 的名称和值绑定(bind)到 products。那是错误的。当然,这是您的代码中最少的问题。更大更严重的问题是您使用的是 ViewData 而不是强类型 View 和 View 模型。

所以有两种可能:

  1. 蹩脚的一个:在您的 View 模型上有一个属性,您将绑定(bind)您的下拉值。

    [Required(ErrorMessage = "Please Select the Product from the List")]
    public string SelectedProduct { get; set; }

    然后使用此属性名称作为弱类型 DropDownList 帮助程序的第一个参数,并将 ViewData 作为第二个参数:

    <%= Html.DropDownList( 
    "SelectedProduct",
    ViewData["products"] as SelectList,
    "--select--"
    ) %>
    <%= Html.ValidationMessage("SelectedProduct") %>
  2. 正确的方法:当然是使用真实的 View 模型(我厌倦了重复它,只是谷歌,你会得到像 gazillions of answers ,只有我,就在这个主题的这个网站上) .它看起来像这样:

    <%: Html.DropDownListFor( 
    x => x.SelectedProduct,
    Model.Products,
    "--select--"
    ) %>
    <%= Html.ValidationMessageFor(x => x.SelectedProduct) %>

关于asp.net-mvc - 使用 (Html.ValidationMessage) 对 mvc 中的下拉列表进行简单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6651257/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com