我是使用MVC方法的新手。如何在MVC中使用下拉列表?我需要从主表中获取列表,并将该选项显示为业务配置文件对象的业务前提。这是我的ViewModel
public class SMEAppViewModel
{
public WP2PBusinessProfile BuisinessProfile { get; set; }
public IEnumerable<WP2PMasterDropDownList> MasterList { get; set; }
}
在我的控制器中,我已经将列表的主列表初始化为
var _MasterList = _context.WP2PMasterDropDownList.ToList();
,在我看来,我可以使用以下代码在列表中显示所有选项
@foreach (var karim in Model.MasterList.Where(c => c.Variable == "BusinessPremise"))
{
@Html.DisplayFor(modelitem => karim.Value) <br>
}
但是,我在视图中使用以下dropdownlistfor,但是我的下拉列表无法在视图中显示我的下拉选项。
@Html.DropDownListFor(m => m.BuisinessProfile.BusinessPremise, new SelectList(Model.MasterList, "Id", "Value"), "Select value")
@Html.LabelFor(m => m.BuisinessProfile.BusinessPremise, new { @class = "form-control" })
有人会告诉我我的代码中有什么错吗?
谢谢
在您的视图中尝试一下
@Html.DropDownListFor(m => m.Entity, new Project.Models.My_Class().My_Method, new { @class = "form-control" })
您无法从下拉列表中获取数据。
在my_method中,您可以使用selectList
如果您只想在下拉中显示文本选项,请尝试使用'selectListItem'的列表,然后用foreach循环填写此列表,例如
List<SelectListItem> ls = new List<SelectListItem>();
foreach (var temp in yourlist)
{
ls.Add(new SelectListItem()
{ Text = temp.textfield, Value = Convert.ToString(temp.valuefield) });
}
之后,此列表将此列表添加到您的视图字段(您的案例主列表,但将类型更改为 List<SelectListItem>
)将显示下拉列表并获取所选值,您可以使用javascript和jquery和jquery使用ajax call呼叫进行进一步的过程。
var dropdownvalue = $("#AccountGroupID option:selected").val();
var dropdowntext = $("#AccountGroupID option:selected").text();
这将为您提供所选项目的价值和文字。
以显示显示下拉列表,您可以这样尝试。
@Html.DropDownListFor(model => model.BuisinessProfile, new SelectList(Model.MasterList, "Value", "Text"), "-- Select --", htmlAttributes: new { @class = "form-control", id = "dropdown"})