加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 在DropDownList中验证所需的选择

发布时间:2020-12-16 00:33:33 所属栏目:asp.Net 来源:网络整理
导读:我的视图模型定义了必须显示为组合框的属性。属性定义是: [Required]public int Processor { get; set; } 我使用DropDownListFor渲染组合框: %=Html.DropDownListFor(r = r.Processor,Model.Processors,Model.Processor)% Model.Processors包含IEnumerable
我的视图模型定义了必须显示为组合框的属性。属性定义是:
[Required]
public int Processor { get; set; }

我使用DropDownListFor渲染组合框:

<%=Html.DropDownListFor(r => r.Processor,Model.Processors,Model.Processor)%>

Model.Processors包含IEnumerable< SelectListItem>一个特殊项目定义为:

var noSelection = new SelectListItem
  {
    Text = String.Empty,Value = "0"
  };

现在我需要添加验证到我的组合框,以便用户必须选择不同的值,然后’noSelection’。我希望对RequiredAttribute进行一些配置,但是它没有默认值设置。

解决方法

这个怎么样:
[Required]
public int? Processor { get; set; }

接着:

<%= Html.DropDownListFor(
    x => x.Processor,"-- select processor --"
) %>

并在您的POST操作

[HttpPost]
public ActionResult Index(MyViewModel model)
{
    if (ModelState.IsValid)
    {
        // the model is valid => you can safely use model.Processor.Value here:
        int processor = model.Processor.Value;
        // TODO: do something with this value
    }
    ...
}

现在您不再需要手动添加noSelection项目。只需使用正确的DropDownListFor超载。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读