加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 模型绑定下拉列表选择的值

发布时间:2020-12-16 03:37:09 所属栏目:asp.Net 来源:网络整理
导读:我有一个模型,该模型有一个公共列表 string小时{得到;组; } 和构造函数 public SendToList() { Hour = new Liststring { "00","01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23" }; }
我有一个模型,该模型有一个公共列表< string>小时{得到;组; }
和构造函数

public SendToList()
    {
        Hour = new List<string> { "00","01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23" };
    }

我的问题是为什么我没有为此获得选定的值

@Html.DropDownListFor(model => model.Hour,Model.Hour.Select( 
                x => new SelectListItem
                {
                    Text = x,Value = x,Selected = DateTime.Now.Hour == Convert.ToInt32(x)
                }
            ))

但我在这里得到一个选定的值.

@Html.DropDownList("Model.Hour",Selected = DateTime.Now.Hour == Convert.ToInt32(x)
                }
            ))

有什么不同?

解决方法

因为您需要将所选值分配给模型.

所以我建议你采用以下方法.让我们从视图模型开始:

public class MyViewModel
{
    // this will hold the selected value
    public string Hour { get; set; }

    public IEnumerable<SelectListItem> Hours 
    { 
        get
        {
            return Enumerable
                .Range(0,23)
                .Select(x => new SelectListItem {
                    Value = x.ToString("00"),Text = x.ToString("00")
                });
        } 
    }
}

你可以在控制器中填充这个视图模型:

public class HomeController: Controller
{
    public ActionResult Index()
    {
        var model = new MyViewModel
        {
            // Set the Hour property to the desired value
            // you would like to bind to
            Hour = DateTime.Now.Hour.ToString("00")
        };
        return View(model);
    }
}

在您看来简单地说:

@Html.DropDownListFor(
    x => x.Hour,new SelectList(Model.Hours,"Value","Text")
)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读