ASP.NET MVC-asp.net mvc3中 DropDownListFor 绑定枚举类型
使用强类型绑定一个枚举类型
如下:
@Html.DropDownListFor(model => model.SaleStatus, (IEnumerable<SelectListItem>)ViewBag.Salestatus)
@Html.ValidationMessageFor(model => model.SaleStatus)
问题出现了,在提交的时候我用的是实体类的验证,客户端验证失效,
而且在编辑的时候,无法赋值。请高手帮忙!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
赋值的代码可以贴出来看看,我记得如果绑定一个枚举类型,使用SelectedValue赋值时应该使用枚举的名称而不是值,可以检查一下。或者试试使用Add()方法进行赋值,同时应该注意用户控件是否加了属性,如果没有,加属性试试。
Asp.net mvc 接触的不多
给你个例子的链接
Creating a DropDownList helper for enums
一、创建一个如下的扩展方法 :
public static SelectList ToSelectList<TEnum>(this TEnum enumObj)
{
var values = from TEnum e in Enum.GetValues(typeof(TEnum))
select new { ID = e, Name = e.ToString() };
return new SelectList(values, "Id", "Name", enumObj);
}
二、控制器里代码如下(其中POStatus是枚举类型):
public virtual ActionResult Edit(Guid? Id)
{
var item = _Purchase_BLL.Get(Id);
ViewData["status"] = ((POStatus)item.Status).ToSelectList();
return View(item);
}
三、前台代码如下所示:
<th width="15%" align="right">
<%: Html.LabelFor(model => model.Status)%>
</th>
<td width="35%">
<%: Html.DropDownListFor(model => model.Status, ViewData["status"] as SelectList)%>
<%: Html.ValidationMessageFor(model => model.Status)%>
</td>