Lad*_*nka 18 validation asp.net-mvc asp.net-mvc-2
我的视图模型定义了必须显示为组合框的属性.属性定义是:
[Required]
public int Processor { get; set; }
Run Code Online (Sandbox Code Playgroud)
我正在使用DropDownListFor渲染组合框:
<%=Html.DropDownListFor(r => r.Processor, Model.Processors, Model.Processor)%>
Run Code Online (Sandbox Code Playgroud)
Model.Processors包含IEnumerable<SelectListItem>一个特殊项目定义为:
var noSelection = new SelectListItem
{
Text = String.Empty,
Value = "0"
};
Run Code Online (Sandbox Code Playgroud)
现在我需要在我的组合框中添加验证,以便用户必须选择不同的值,然后选择'noSelection'.我希望有一些配置,RequiredAttribute但它没有默认值设置.
Dar*_*rov 26
这个怎么样:
[Required]
public int? Processor { get; set; }
Run Code Online (Sandbox Code Playgroud)
然后:
<%= Html.DropDownListFor(
x => x.Processor, Model.Processors, "-- select processor --"
) %>
Run Code Online (Sandbox Code Playgroud)
在你的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
}
...
}
Run Code Online (Sandbox Code Playgroud)
现在您不再需要手动添加noSelection项目了.只需使用正确的DropDownListFor重载.
| 归档时间: |
|
| 查看次数: |
20361 次 |
| 最近记录: |