首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Asp.net核心Mvc中提交表单后,下拉列表不保留选定的值

在ASP.NET Core MVC中提交表单后,下拉列表不保留选定的值的解决方法如下:

  1. 使用ViewBag或ViewData传递选定的值:在Controller的POST方法中,将选定的值通过ViewBag或ViewData传递到对应的视图页面。在视图页面中,使用这些传递的值来设置下拉列表的选中状态。例如:
代码语言:txt
复制
// POST方法中获取选定的值并传递到视图页面
[HttpPost]
public IActionResult SubmitForm(string selectedValue)
{
    ViewBag.SelectedValue = selectedValue;
    return View();
}

在视图页面的下拉列表中,根据ViewBag中传递的选定的值设置selected属性:

代码语言:txt
复制
<select>
    <option value="value1" @(ViewBag.SelectedValue == "value1" ? "selected" : "")>Option 1</option>
    <option value="value2" @(ViewBag.SelectedValue == "value2" ? "selected" : "")>Option 2</option>
    <!-- 其他选项 -->
</select>
  1. 使用Model绑定:在提交表单时,将选定的值通过模型绑定到POST方法中。然后在POST方法中重新将这些值传递到视图页面。在视图页面中,使用这些传递的值来设置下拉列表的选中状态。例如:
代码语言:txt
复制
// 模型类
public class MyModel
{
    public string SelectedValue { get; set; }
    // 其他表单字段
}

// GET方法返回带有选定的值的视图页面
[HttpGet]
public IActionResult SubmitForm()
{
    MyModel model = new MyModel();
    model.SelectedValue = "value1"; // 设置选定的值
    return View(model);
}

// POST方法中获取选定的值并传递到视图页面
[HttpPost]
public IActionResult SubmitForm(MyModel model)
{
    model.SelectedValue = model.SelectedValue; // 重新获取选定的值
    return View(model);
}

在视图页面的下拉列表中,根据Model中的选定的值设置selected属性:

代码语言:txt
复制
<select>
    <option value="value1" @(Model.SelectedValue == "value1" ? "selected" : "")>Option 1</option>
    <option value="value2" @(Model.SelectedValue == "value2" ? "selected" : "")>Option 2</option>
    <!-- 其他选项 -->
</select>

通过上述方法,即可在ASP.NET Core MVC中提交表单后,保留下拉列表的选定值。请注意,以上方法只是其中的两种常见解决方案,具体实现方式还可以根据实际情况进行调整和优化。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券