如何将 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> </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 组转换为下拉列表的主要内容,如果未能解决你的问题,请参考以下文章