mvc中下拉框如何绑定枚举值
一般的BS程序开发中,习惯了使用asp.net控件在后台直接绑定数据,可是最近遇到了一个问题,在mvc中,如何在前台绑定后台数据呢?
以前,我们都是直接在前台页面列举数据如下:
<SOA:HBDropDownList ID="ddlReadState" runat="server" Width="200px"> <asp:ListItem Text="请选择" Value="-1"></asp:ListItem> <asp:ListItem Text="已完成" Value="1"></asp:ListItem> <asp:ListItem Text="未完成,已知晓" Value="0"></asp:ListItem> </SOA:HBDropDownList>或者直接在后台使用下拉框控件ID绑定数据源。
this.ddlReadState.DataSource = List<State>;可是在mvc中,controller中是不能直接使用控件ID来进行数据绑定的,只能在前台进行数据绑定。那怎么实现数据更新呢?
model代码:
public class SignQuoteFormViewModel : WfDataViewModelBase<SignQuoteForm> { public string ReadState { get; set; } public string ReadRemark { get; set; } public List<SelectListItem> GetSelectList() { List<SelectListItem> list = new List<SelectListItem> { new SelectListItem{Text="请选择",Value="-1"}, new SelectListItem{Text="已完成",Value="0"}, new SelectListItem{Text = "未完成,请知晓",Value ="1"} }; return list; } } public enum selectListStatus { /// <summary> /// 已完成 /// </summary> [EnumItemDescription("已完成")] NoFinish = 0, /// <summary> ///未完成 /// </summary> [EnumItemDescription("未完成")] Finished = 1 }前台数据绑定:
<div style="padding:15px;border-radius:0;" class="panel-body"> @Html.ViewComponent().DropDownList(Html, m => m.ReadState, Model.GetSelectList(), new { @class = "form-control" }) </div>效果图如下:
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。