要通过验证保持选中的选项,可以使用ASP.NET Core MVC中的ModelState对象。ModelState包含有关当前请求的验证状态的信息。
以下是一个示例,演示如何在视图中正确设置并保持选中的选项:
在控制器中,首先创建一个列表,并将其传递给视图:
public IActionResult Index()
{
List items = new List
{
new SelectListItem { Text = "Option 1", Value = "1" },
new SelectListItem { Text = "Option 2", Value = "2" },
new SelectListItem { Text = "Option 3", Value = "3" }
};
ViewBag.Options = items;
return View();
}
在视图中,使用Html.DropDownListFor方法生成下拉列表,并使用ModelState值设置选中的选项:
@model YourModel
@Html.DropDownListFor(model => model.SelectedOption, (IEnumerable)ViewBag.Options, "Select an option")
在提交表单并进行验证之前,将选中的选项存储在ModelState对象中:
[HttpPost]
public IActionResult Index(YourModel model)
{
ModelState.Clear();
// Perform validation and other operations
// Set the selected option back to the model
ModelState.SetModelValue("SelectedOption", new ValueProviderResult(model.SelectedOption));
if (ModelState.IsValid)
{
// Continue with the logic
}
return View(model);
}
这样,当验证失败或重新加载视图时,选中的选项将保持不变。
请注意,您需要在视图中使用相应的模型,并根据您的实际需求进行调整。此示例仅用于演示目的。