在ASP.Net MVC 3中使用Html.DropDownListFor帮助程序时填充SelectList的正确方法是什么?
我基本上有一个“创建”表单,我想为特定字段指定条目值。例如,它是一个电影数据库,我希望能够输入一个类型,但我不希望用户能够输入他们喜欢的内容,所以我假设一个SelectList是最好的答案?
一种有效的方法是使用静态方法创建一个新类,以返回SelectList:
public class Genres
{
public static List<string> GetGenres()
{
List<string> myGenres = new List<string>();
myGenres.Add("Comedy");
myGenres.Add("Romantic Comedy");
myGenres.Add("Sci-Fi");
myGenres.Add("Horror");
return myGenres;
}
}
然后可以这样使用:
<div class="editor-field">
@Html.DropDownListFor(model => model.Genre, new SelectList(OLL.Models.Genres.GetGenres()))
</div>
它似乎不是正确/最简单的方法吗?我想我在这里遗漏了一些明显的东西......
感谢您提供的任何帮助。
答案 0 :(得分:0)
这是一个简单的selectList样式,我一直用它来下载,希望你能找到这个有用的。
ViewBag.AlbumListDD = from c in db.Query<DatabaseEntities.VenuePhotoAlbum>("WHERE VenueId = @0", VenueId)
select new SelectListItem
{
Text = c.Name,
Value = c.Id.ToString()
};
在我看来:
@Html.DropDownList("AlbumId", (IEnumerable<SelectListItem>)ViewBag.AlbumListDD, new { id = "ChangeAlbum" })
希望您能找到这个有用的,因为这是一个数据库路径。我通常喜欢在数据库中拥有所有这些信息,这样用户可以随意动态添加/删除和更改这些下拉项。在删除类型时,幕后需要进行一些SQL工作,但事实证明这对我来说非常成功和快速。
答案 1 :(得分:0)
var og = (from s in DB.Products
select new SelectListItem
{
Text = s.ProductName,
Value = s.ProductID.ToString()
});
ViewBag.lstProducts = new SelectList(getproductname, "ProductID", "ProductName");
<p>
@Html.DropDownList("AlbumId", (IEnumerable<SelectListItem>)ViewBag.lstProducts, new { @id = "drp" });
</p>