一般的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>
效果图如下:
时间: 2024-12-28 01:28:25