I use MVC4 and trying to make dropdown with links. I wrote a helper:
public static MvcHtmlString LanguageSelectorDropdown(this System.Web.Mvc.HtmlHelper helper, string name)
{
var culture = Thread.CurrentThread.CurrentCulture;
IList<Culture> data = new CultureRepository().GetEnabled();
var items = new List<SelectListItem>();
items.AddRange(
(from item in data
select new SelectListItem()
{
Text = @"<a href='/Home/Edit/3'>I am a link</a>", //it's only example. Here I run the other method to get dynamic link
Value = item.ID.ToString(),
Selected = culture.Name.Equals(item.ID)
}).ToList());
return new MvcHtmlString(HttpUtility.HtmlDecode(helper.DropDownList(name, items).ToString()));
}
At the end of this method I have:
helper.DropDownList(name, items).ToString() = "<select id=\"LanguageSelector\" name=\"LanguageSelector\"><option value=\"de-DE\"><a href='/Home/Edit/3'>I am a link</a></option>\r\n<option value=\"en-US\"><a href='/Home/Edit/3'>I am a link</a></option>\r\n<option selected=\"selected\" value=\"ru-RU\"><a href='/Home/Edit/3'>I am a link</a></option>\r\n</select>"
HttpUtility.HtmlDecode(helper.DropDownList(name, items).ToString()) = "<select id=\"LanguageSelector\" name=\"LanguageSelector\"><option value=\"de-DE\"><a href='/Home/Edit/3'>I am a link</a></option>\r\n<option value=\"en-US\"><a href='/Home/Edit/3'>I am a link</a></option>\r\n<option selected=\"selected\" value=\"ru-RU\"><a href='/Home/Edit/3'>I am a link</a></option>\r\n</select>"
In result html page:
<select id="LanguageSelector" name="LanguageSelector">
<option value="de-DE">I am a link</option>
<option value="en-US">I am a link</option>
<option value="ru-RU" selected="selected">I am a link</option>
</select>
It looks like links disappeared. Is there any way to force it work?