在IEnumerable< SelectListItem>中设置选择值. C#的MVC [英] set select value in 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< SelectListItem>中设置选择值. C#的MVC的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!