ASP.NET MVC-asp.net mvc3中 DropDownListFor 绑定枚举类型

发布于 2017-02-23 12:05:39 字数 266 浏览 1281 评论 3

使用强类型绑定一个枚举类型
如下:
@Html.DropDownListFor(model => model.SaleStatus, (IEnumerable<SelectListItem>)ViewBag.Salestatus)
@Html.ValidationMessageFor(model => model.SaleStatus)
问题出现了,在提交的时候我用的是实体类的验证,客户端验证失效,
而且在编辑的时候,无法赋值。请高手帮忙!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

想挽留 2017-08-27 17:20:54

赋值的代码可以贴出来看看,我记得如果绑定一个枚举类型,使用SelectedValue赋值时应该使用枚举的名称而不是值,可以检查一下。或者试试使用Add()方法进行赋值,同时应该注意用户控件是否加了属性,如果没有,加属性试试。

偏爱自由 2017-08-19 14:10:23

Asp.net mvc 接触的不多
给你个例子的链接
Creating a DropDownList helper for enums

甜柠檬 2017-04-22 09:31:26

一、创建一个如下的扩展方法 :

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>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文