我想在我的MVC应用程序中使用ComboBox,但Html.DropDownListFor没有提供所需的输出。我的控制器代码如下
public class Data_TableController : Controller
{
public ActionResult ListIndex()
{
List<SelectListItem> listSelectListItems = new List<SelectListItem>();
SelectListItem selectList = new SelectListItem()
{
Text = "DD",
Value = "1"
};
listSelectListItems.Add(selectList);
selectList = new SelectListItem()
{
Text = "XX",
Value = "2"
};
listSelectListItems.Add(selectList);
CitiesViewModel citiesViewModel = new CitiesViewModel()
{
Cities = listSelectListItems
};
return View(citiesViewModel);
}
}
ListIndex.cshtml代码是:
@model MvcDemo.Models.CitiesViewModel
@{
ViewBag.Title = "ListIndex";
}
<div style=”font-family:Arial”>
<h2>Index</h2>
@using (Html.BeginForm())
{
@Html.DropDownListFor(m => m.SelectedCities, Model.Cities, new { size = Model.Cities.Count() })
<br />
<input type="submit" value=”Submit” />
}
</div>
查看模型如下
public class CitiesViewModel
{
public IEnumerable<string> SelectedCities { get; set; }
public IEnumerable<SelectListItem> Cities { get; set; }
}
但是HTML out是纯粹的列表框。另外我想知道,如何在这里添加标签?将我想要的输出附加到组合框中。
答案 0 :(得分:0)
您正在增加显示尺寸&#39;您的下拉列表中添加:
new { size = Model.Cities.Count() }
因此删除它会使其成为默认显示尺寸&#39;一个元素。
要添加标签,我发现最佳方法如下:
在您的模型中,在属性上使用DisplayName属性:
[DisplayName("The City:")]
public string Cities { get; set; }
然后在您的“视图”中显示它:
@Html.LabelFor(m => m.Cities)
要给下拉列表/组合框一个样式执行类似下面的操作,即使用new运算符:
@Html.DropDownListFor(m => m.SelectedCities, Model.Cities, new { id = "cities", style = "width:320px;color:red;background-color:blue;" })
修改强> 正如jbutler483所指出的那样,如果您希望使用css文件,可以通过以下方式实现样式化(但如果样式是一次性的并且未在网站的其他地方使用,那么内联样式最好):
Html.DropDownListFor(..., new { @class = "myclassname" } );