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>

效果图如下:

时间: 2024-12-28 01:28:25

mvc中下拉框如何绑定枚举值的相关文章

ASP.NET MVC之下拉框绑定四种方式(十)

前言 上两节我们讲了文件上传的问题,关于这个上传的问题还未结束,我也在花时间做做分割大文件处理以及显示进度的问题,到时完成的话再发表,为了不耽误学习MVC其他内容的计划,我们今天开始好好讲讲关于MVC中下拉框中绑定枚举的几种方式. 话题引入 一般在下拉框中绑定数据的话,分为几种情况. (1)下拉框中的数据是写死的,我们直接给出死代码即可. (2)下拉框中的数据从数据库中读取出来,从而进行显示. (3)下拉框中直接用枚举显示. (4)下拉框中一个选择的值改变另外一个下拉框中的值. 关于下拉框中绑定

ASP.NET Core 四种方式绑定枚举值

原文:ASP.NET Core 四种方式绑定枚举值 前言 本节我们来讲讲在ASP.NET Core MVC又为我们提供了哪些方便,之前我们探讨过在ASP.NET MVC中下拉框绑定方式,这节我们来再来重点看看枚举绑定的方式,充分实现你所能想到的场景,满满的干货,你值得拥有. 探讨枚举绑定方式# 我们首先给出要绑定的枚举类. public enum Language { JavaScript, Java, C, Python, SQL, Oracle } 枚举绑定方式一(@Html.DropDow

GridView列添加下拉框,绑定数据源并设置默认值

添加下拉框:   注意:默认值只能在界面初始化直接中设置 DataGridViewComboBoxColumn dataGridViewComboBoxColumn = new DataGridViewComboBoxColumn(); dataGridViewComboBoxColumn.Name = "dgvcbcSeatType"; dataGridViewComboBoxColumn.DataPropertyName = "SeatType"; dataGr

Javascript获取select下拉框选中的的值

现在有一id=test的下拉框,怎么拿到选中的那个值呢? 分别使用javascript原生的方法和jquery方法 <select id="test"  name="">     <option   value="1">text1</option>     <option   value="2">text2</option>    </select> co

项目中下拉框链接问题

项目中有一个需求:用户开户模板列表的操作按钮中添加设为默认模板按钮,设置完成后,该模板将作为开户时的默认模板,当开户页面加载的时候显示该模板的信息,否则显示请选择模板,下拉框选中哪个则显示哪个模板的信息. HTML下拉框链接代码: <select name="user_templets_id" onchange="javascript:window.open(this.options[this.options.selectedIndex].value,'_self')&

Js获取下拉框选定项的值和文本

Js获取下拉框的值和文本网上提供了2种方法:但有些人很不负责任,他们根本没考虑到浏览器之间的差异导致的错误,导致很多新手琢磨了半天找不出错误! 下面我总结下Firefox和IE下获取下拉框选定项的值和文本: 1. IE和Firefox都支持的方法: 获取文本 var obj=document.getElementById('select_template'); var text=obj.options[obj.selectedIndex].text;//获取文本 var obj=document

MVC视图中下拉框的使用

首先要在controller 中将选项设置成 selecList对象,并赋值给viewBag动态对象. public ActionResult Index(string movieGenre,string searchString) { var GenreLst = new List<string>(); var GenreQry = from d in db.Movies orderby d.Genre select d.Genre; GenreLst.AddRange(GenreQry.D

mvc 下拉框赋值

以前使用WebForm变成时,下拉框传值只需直接在后台绑定代码就可以了.现在我们来看看在MVC中DropDownList是如果和接受从Controller传过来的值的. 第一种:使用DropDownList 控制器代码: public ActionResult Index() { //1.1查询YzSeriesEntity的数据 List<Model.YzSeriesEntity> seriesList = seriesBLL.LoadEnities().ToList(); //1.2将YzS

ASP.NET MVC 下拉框的传值的两种方式

以前使用WebForm变成时,下拉框传值只需直接在后台绑定代码就可以了.现在我们来看看在MVC中DropDownList是如果和接受从Controller传过来的值的. 第一种:使用DropDownList 控制器代码: public ActionResult Index() { //1.1查询YzSeriesEntity的数据 List<Model.YzSeriesEntity> seriesList = seriesBLL.LoadEnities().ToList(); //1.2将YzS