Сначала получите категории,
private IEnumerable<SelectListItem> GetCategories()
{
var categories = _context.CategoryModels
.Select(c => new SelectListItem
{
Value = c.ID.ToString(),
Text = c.Value
});
return categories;
}
, теперь вы передаете категории selectlist
, используя ViewBag или ViewModel
public ActionResult CreateCategory()
{
ViewBag.Categories = GetCategories();
return View();
}
в представлении,
<form>
<div>
<label>Category Name: </label> @Html.TextBox("CategoryName", null, new { @class = "foo" })
</div>
@if (ViewBag.Categories != null)
{
<div>
<label>Parent Category: </label>@Html.DropDownList("ParentID", new
SelectList(ViewBag.Categories, "Value", "Text"), "Select Parent
Category", new { @class = "foo" })
</div>
}
<button type="submit">Save</button></from>
Если вам требуется дополнительное условие для выпадающего списка категорий, вы можете добавить их методом GetCategories()
.
В соответствии с вашим комментарием, вот пример CategoryController
public class CategoryController : Controller
{
private ApplicationDbContext _context;
public CategoryController()
{
_context = new ApplicationDbContext();
}
[HttpGet]
public ActionResult CreateCategory()
{
ViewBag.Categories = GetCategories();
return View();
}
private IEnumerable<SelectListItem> GetCategories()
{
var categories = _context.CategoryModels
.Select(c => new SelectListItem
{
Value = c.ID.ToString(),
Text = c.Value
});
return categories;
}
}