【问题标题】:MVC dropdownlist get textMVC 下拉列表获取文本
【发布时间】:2014-08-06 19:49:37
【问题描述】:

实现了 Scott Alen 的下拉列表:http://odetocode.com/blogs/scott/archive/2013/03/11/dropdownlistfor-with-asp-net-mvc.aspx

使用他的示例,我得到了 Id (SelectedFlavorId),但不是实际文本。

如何在 action 方法中获取实际文本。

【问题讨论】:

  • 你的意思是回邮吗?如果您想要文本而不是 id,为什么不将 SelectList 中的值设为文本,而不是 id?例如SelectList(_flavors, "Name", "Name");
  • @intracept - 是的,在回帖中。我实际上也需要那个 id。
  • 如果您有 ID,您可以使用 EF 在回发中使用 db.IceCreamFlavors.FirstOrDefault(f => f.ID == vm.ID) 之类的方式获取该 ID 的匹配文本。

标签: c# asp.net


【解决方案1】:

“回发”是一个WebForms的概念;假设您启用了 ViewState,当您回发到服务器时,您会从页面加载中获得大部分(如果不是全部)原始数据。

在 ASP.NET MVC 中发布的唯一数据是绑定到成功输入的数据。因此,假设您使用的是 jQuery,如果您还想要文本值,则需要绑定隐藏输入:

$('form').on('change', '#SelectedFlavorId', function(e){

    var text = $(this).find('option:selected').text();
    $('#SelectedFlavorText').val(text);

});

在这里,我假设您将隐藏输入的属性命名为 SelectedFlavorText

【讨论】:

  • 这是个好主意,谢谢! (我只需要将 ($this) 修复为 $(this)。
  • @ra170 抱歉,打错了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-18
  • 2014-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-02
相关资源
最近更新 更多