0

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\">&lt;a href=&#39;/Home/Edit/3&#39;&gt;I am a link&lt;/a&gt;</option>\r\n<option value=\"en-US\">&lt;a href=&#39;/Home/Edit/3&#39;&gt;I am a link&lt;/a&gt;</option>\r\n<option selected=\"selected\" value=\"ru-RU\">&lt;a href=&#39;/Home/Edit/3&#39;&gt;I am a link&lt;/a&gt;</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?

  • Links inside `option` are not supported by the browsers themselves. In fact a lot of things are not supported inside `option`. Checkout [this thread](http://stackoverflow.com/q/2000656/728795) for some workarounds – Andrei Nov 27 '14 at 13:48
  • Thank you a lot for help. Clear. – Student Nov 27 '14 at 13:53

0 Answers0