無効な C# 構文がありますが、正しい方向に進んでいます。
モデルを定義します。
public class CategoriesModel
{
public int Id { get; set }
public string CategoryName { get; set }
public List<CategoryName> CategoryNames { get; set; }
}
コントローラー:
public class HomeController: Controller
{
public ActionResult Index()
{
var model = new CategoriesModel();
model.CategoryNames = GetCategoryNames();
return View(model);
}
private List<CategoryName> GetCategoryNames()
{
// TODO: you could obviously fetch your categories from your DAL
// instead of hardcoding them as shown in this example
var categories = new List<CategoryName>();
categories.Add(new CategoryName { Id = 1, Name = "category 1" });
categories.Add(new CategoryName { Id = 2, Name = "category 2" });
categories.Add(new CategoryName { Id = 3, Name = "category 3" });
return categories;
}
}
最後にモデルへの強く型付けされたビュー:
@model CategoriesModel
@using (Html.BeginForm())
{
@Html.DropDownListFor(
x => x.CategoryName,
new SelectList(Model.CategoryName, "Id", "Name")
)
<button type="submit"> OK</button>
}
モデルは表示されていませんが、この例では、呼び出されたプロパティがあり、DropDownList がバインドされているCategoryName
と仮定しています。Id
Name