在IEnumerable< SelectListItem>中设置选择值. C#的MVC [英] set select value in IEnumerable<SelectListItem> c# mvc

查看:273
本文介绍了在IEnumerable< SelectListItem>中设置选择值. C#的MVC的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个IEnumerable<SelectListItem>

我的ViewModel

My ViewModel

public class StatusClass
{
    public string Status { get; set; }

    public IEnumerable<SelectListItem> StatusList { get; set; }
}

我从控制器中将值设置为StatusList.

I set values in to StatusList from my controller.

StatusClass statusObj = new CRM.StatusClass();

List<SelectListItem> Discountdata = new List<SelectListItem>();
        Discountdata.Add(new SelectListItem() { Value = "All", Text = "All" });
        Discountdata.Add(new SelectListItem() { Value = "Draft", Text = "Draft" });
        Discountdata.Add(new SelectListItem() { Value = "Issued", Text = "Issued" });
        Discountdata.Add(new SelectListItem() { Value = "Partial", Text = "Partially Received" });
        Discountdata.Add(new SelectListItem() { Value = "Received", Text = "Received" });
        Discountdata.Add(new SelectListItem() { Value = "PAID", Text = "Paid" });
        Discountdata.Add(new SelectListItem() { Value = "Billed", Text = "Billed" });

        statusObj.StatusList = new SelectList(Discountdata, "Value", "Text"); 

这很好用,我的HTML就像这样:

This works fine and my HTML is like this:

@Html.DropDownListFor(model => model.Status, Model.StatusList)

我想要的是,创建列表后,我需要从控制器设置选定的值.

What i want is, I need to set the selected value from the controller when the list get created.

假设我有一个像这样的字符串:

Suppose I have a string like this:

string newwStatus = "Issued";

如何将其设置为在SelectListItem中选择的值.

How can I set it as selected in the SelectListItem.

我尝试过此方法,但在我的情况下不起作用:

I tried this, but its not working in my case:

foreach(var item  in StatusList)
{
    if(item.value == status)
    {
        item.Selected = true;
    }
}

,也尝试这样做:

IEnumerable<SelectListItem> selectList =
    from s in StatusList
        select new SelectListItem
        {
            Selected = (s.Value == status),
            Text = s.Text,
            Value = s.Value
        };

如果有人知道该怎么做,我不知道这些方法是否正确,请帮忙.

I dont know if these are the right way if someone know how to do this, please help.

谢谢.

推荐答案

您正在将Status属性绑定到下拉列表.因此,可以从数据库中设置值,或者在您的情况下,设置默认值"Issued",如下所示:

You're binding Status property to the dropdown. So set the value either from database, or in your case, a default value "Issued" like this:

statusObj.Status = "Issued"

这篇关于在IEnumerable&lt; SelectListItem&gt;中设置选择值. C#的MVC的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆