如何在 asp.net MVC3中获取下拉列表的选定值

本文关键字:下拉列表 获取 asp net MVC3 | 更新日期: 2023-09-27 17:56:42

这是我的代码 在 MVC3 asp.net 中将数据库中的数据显示到 DropDownList 中在这种情况下,我现在可以将数据库中的数据显示到下拉列表中,但现在我希望如果我从下拉列表数据中选择任何内容,我希望所选值在我的存储过程中传递。我知道可能有同样的问题可用或已经被问过,但我没有得到我想要的答案。如果有人可以一步一步地解释我或为我提供一些有用的链接。

如何在 asp.net MVC3中获取下拉列表的选定值

此代码尚未完全测试和实现。

您可以使用onchange事件来实现它 dropdownlist .

@Html.DropDownListFor(x => x.SelectedItemValue,new {@onchange="passvalue(this);"})

使用 javascript 和 ajax 处理它

<script type="text/javascript">
  function passvalue(e){
      $.ajax({
         type: 'POST',
         dataType: 'json',
         url: '@Url.Action("Index", "Home")',
         data: ({ selectedValue: e.innerHTML }),
         success: function (result) {
                                    },
         error: function (result) {
                    alert('error');
                }
      });
  }
  </script>

现在,您可以将所选值获取到控制器

[HttpPost]
public ActionResult Index(int selectedValue)
{
   // do whatever you want with `selectedValue`
}

希望对你有帮助

这是实现此目的的一种方法:

订阅下拉列表的 change 事件,并调用将所选值传递给存储过程的操作方法(例如使用 ajax)。

有几种方法。最简单的方法之一是拥有一个 ViewModel,其中包含要在下拉列表中呈现的 SelectListItems 集合和一个用于进行选择的项。当然,在下面的示例代码中,我正在使用硬编码值等来演示这一点!

视图模型

public class TestViewModel
{
    public IEnumerable<SelectListItem> TestListItems
    {
        get
        {
            return new List<SelectListItem>
            {
                new SelectListItem { Text = "Item 1", Value = "1" },
                new SelectListItem { Text = "Item 1", Value = "1" },
                new SelectListItem { Text = "Item 1", Value = "1" },
            };
        }
    }
    public string SelectedItemValue { get; set; }
}

视图

<p>@Html.DropDownListFor(x => x.SelectedItemValue, new SelectList(Model.TestListItems, "Value", "Text"))</p>

控制器

public ActionResult Index()
{
    var viewModel = new TestViewModel();
    return View(viewModel);
}
[HttpPost]
public ActionResult Index(TestViewModel viewModel)
{
    string youChose = viewModel.SelectedItemValue;
    // ...
}

此外,突出显示集合不必是SelectListItem的,可以是另一种类型。然后,您需要做的就是更改视图以执行.Select以转换为SelectListItem。为了简单起见,我只是让ViewModel直接使用它。