如何将 Actionlink 组转换为下拉列表

Posted

技术标签:

【中文标题】如何将 Actionlink 组转换为下拉列表【英文标题】:How to convert Actionlink group to Dropdown List 【发布时间】:2021-12-25 22:45:42 【问题描述】:

SiteLanguage cs 文件:

 public class SiteLanguages
        
            public static List<Languages> AvailableLanguages = new List<Languages>
            
                 new Languages LangFullName = "English", LangCultureName = "en",
                 new Languages LangFullName = "Español", LangCultureName = "es",
                 new Languages LangFullName = "বাংলা", LangCultureName = "bn"
            ;
     public class Languages
        
            public string LangFullName  get; set; 
            public string LangCultureName  get; set; 
        
    

cshtml文件:

@
            foreach (var i in MvcMultilingual.SiteLanguages.AvailableLanguages)
            
                @Html.ActionLink(i.LangFullName, "ChangeLanguage", "Home", newlang = i.LangCultureName, null) <text>&nbsp;</text>
            
        

我想将此操作列表组转换为下拉列表。如何更改此代码?我的意思是我只想改变cshtml方面。 Html.ActionLink 到 Html.DropdownList 等

【问题讨论】:

这能回答你的问题吗? is it posible do have Html.ActionLink inside a DropDownList Without java script? 不,我见过这个。我在问如何将操作组转换为下拉列表。 您无法将操作链接转换为下拉菜单。但是您可以将 AvailableLanguages 列表转换为 SelectListItem ,这可以轻松地与剃刀下拉菜单一起使用。你可以检查一下 - ***.com/questions/27901175/… 我正在使用 AvailableLanguages 列出其他地方。我不想将其更改为 SelectListItem。我不能只将 ActionLink 更改为 DropdownList 吗? 【参考方案1】:

尝试以下方法:

@using Languages = MvcMultilingual.SiteLanguages

@Html.DropDownListFor(m => Languages.AvailableLanguages.GetEnumerator().Current,
    Languages.AvailableLanguages.Select(d =>
    
        return new SelectListItem() 
            Text = d.LangFullName,
            Value = Url.Action("SetLanguage", "Home", new  lang = d.LangCultureName )
        ;
    ),
    "-Select Language-",
    new  id = "urlddl" )

在这篇文章中查看处理change事件的javascript函数:is it possible do have Html.ActionLink inside a DropDownList Without java script?

在控制器端处理选中的值:

public ActionResult SetLanguage(string lang)

    ...

【讨论】:

以上是关于如何将 Actionlink 组转换为下拉列表的主要内容,如果未能解决你的问题,请参考以下文章

将项目列表转换为下拉列表淘汰js

如何使用约束限制外键下拉列表?

将枚举转换为核心 2.1 剃须刀页面中的下拉列表

Plotly:如何在将多个组作为条形图的同时显示和过滤具有多个下拉列表的数据框?

将 html 选择下拉列表转换为单个按钮导航栏

如何将下拉菜单与切换组绑定