您需要将视图模型传递给您的视图,其中所有状态都已填充。
这是您的问题的解决方案。修改它以适应您的场景。我希望我没有遗漏任何东西。下面的代码是我假设您的模型可能看起来的样子。
您的身份等级:
public class Status
{
public int Id { get; set; }
public string Name { get; set; }
}
在您的视图中,您需要传入一个包含所有状态列表的视图模型:
public class YourViewModel
{
public int StatusId { get; set; }
public IEnumerable<Status> Statuses { get; set; }
}
你的控制器:
public class YourController : Controller
{
private readonly IStatusRepository statusRepository;
public YourController(IStatusRepository statusRepository)
{
this.statusRepository = statusRepository;
}
public ActionResult YourAction()
{
YourViewModel viewModel = new YourViewModel
{
Statuses = statusRepository.FindAll()
};
return View(viewModel);
}
}
然后您的视图将如下所示:
@model YourProject.ViewModels.Statuses.YourViewModel
@Html.DropDownListFor(
x => x.StatusId,
new SelectList(Model.Statuses, "Id", "Name", Model.StatusId),
"-- Select --"
)
@Html.ValidationMessageFor(x => x.StatusId)
我希望这可以帮助您朝着正确的方向前进,并阐明您正在努力实现的目标。