c# - MVC 4 中单个选择下拉列表的验证

标签 c# .net validation asp.net-mvc-4 jquery-validate

我有一个具有如下属性的模型:

[Required]
public int SingleSelect { get; set; }

然后我在 Controller 中设置了一个 SelectList 并将其传递给 viewbag

public ActionResult Index()
    {
        ViewBag.SingleSelectList = new SelectList(new[]
                                      {
                                          new {ID="0",Name="-- Select --"},
                                          new {ID="1",Name="Select 1"},
                                          new{ID="2",Name="Select 2"},
                                          new{ID="3",Name="Select 3"},
                                      },
                        "ID", "Name", 0);


        return View();
    }

然后在 View() 上,我使用以下代码渲染一个漂亮的下拉框:

@Html.LabelFor(obj => obj.SingleSelect, new { @class = "control-label"})
@Html.DropDownListFor(obj => obj.SingleSelect, ViewBag.SingleSelectList as SelectList)
@Html.ValidationMessageFor(obj => obj.SingleSelect)

<button class="btn btn-primary" type="submit">Validate!</button>

如果用户未在表单提交上做出选择(仍在选项“-- Select --”),我如何才能使验证工作显示错误?

最佳答案

您可以首先尝试两种方法

[Required, Range(1, Int32.MaxValue)]
public int SingleSelect { get; set; }

或更改您的选择列表:

ViewBag.SingleSelectList = new SelectList(new[]
{
    new {ID="0",Name="-- Select --", Value=""},
    new {ID="1",Name="Select 1"},
    new{ID="2",Name="Select 2"},
    new{ID="3",Name="Select 3"},
},
"ID", "Name", 0);

关于c# - MVC 4 中单个选择下拉列表的验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17051125/

相关文章:

WPF 验证控制模板重叠

c# - 麻雀工具包

c# - 发生异常后向后单步执行程序 - Visual Studio

c# - .NET 必须指定有效信息?

javascript - 在 JavaScript 中操作数据时是否应该避免使用 C# 中的十进制类型

ruby-on-rails - 我可以验证回形针附件不是危险的文件类型吗?

javascript - jQuery 验证按钮样式在提交时更改

c# - 列表声明中带/不带括号的区别

c# - 使用 Threads C# 制作的聊天服务器的 CPU 使用率 100%

c# - 具有动态列和行的 DevExpress WPF GridControl