【问题标题】:Validate dropdownlistfor MVC4验证 MVC4 的下拉列表
【发布时间】:2012-12-30 19:23:35
【问题描述】:

我在尝试验证下拉列表时遇到问题,我在这里查看了类似的问题并尝试了建议,但仍然没有运气。我还没有尝试过让我的福利 ID 可以为空,但这是个好主意吗?非常感谢

我要验证的模型:

public class Benefit
{
public int Id { get; set; }
public string Name { get; set; }


}

查看模型:

public class LookupVm
{
    public SelectList Benefits { get; set; }
}

控制器设置:

var model = new LookupVm
{

    Benefits = new SelectList(_repository.Benefits.OrderBy(n => n.Name).ToList(), "Id", "Name")
}

观点:

        @Html.DropDownListFor(benefits => Model.Benefits.SelectedValue, Model.Benefits, "-Select-")
        @Html.ValidationMessageFor(benefits => Model.Benefits.SelectedValue)

【问题讨论】:

标签: asp.net asp.net-mvc asp.net-mvc-4


【解决方案1】:

您可以向视图模型添加 SelectedBenefit 属性

public class LookupVm
{
    public int SelectedBenefit { get; set;}
    public SelectList Benefits { get; set; }
}

然后添加到视图之上

@model LookupVm

然后下拉列表必须是这样的:

@Html.DropDownListFor(model => model.SelectedBenefit, model.Benefits, "-Select-")
@Html.ValidationMessageFor(model => model.SelectedBenefit)

您将在 SelectedBenefit 属性上获得选定的 ID,这将是一个必填字段。

【讨论】:

  • 嗨,Estaban,我按照您的示例进行操作,但下拉菜单仍然没有得到验证:(
  • 我的 lookupvm 确实有其他选择列表,这会导致“SelectedBenefit”混淆吗?
  • 我不这么认为。您是否启用了客户端验证?即添加 jquery-1.7.1.min.js、jquery.validate.min.js、jquery.validate.unobtrusive.min.js 和 jquery.unobtrusive-ajax.min.js。还需要在app.setting中添加两个属性。检查stackoverflow.com/questions/11326792/…
  • 啊啊啊啊,我以为客户端验证是默认启用的 DOH 非常感谢,现在一切正常! :D
猜你喜欢
  • 2013-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-29
相关资源
最近更新 更多