Asp.net mvc Html.ActionLink无法在Bootstrap Select中工作

时间:2016-09-24 12:23:54

标签: jquery html asp.net asp.net-mvc twitter-bootstrap

我想为我的网页本地化选项创建一个下拉列表。但是,如果我尝试使用<ul>标签执行此操作,Html.ActionLink帮助程序会创建与下面的语言代码的真实链接

 @{
    var routeValues = this.ViewContext.RouteData.Values;
    var controller = routeValues["controller"] as string;
    var action = routeValues["action"] as string;
  }

 <ul>
    <li>
        @Html.ActionLink("TR", @action, @controller, new { culture = "tr" }, new { rel = "alternate", hreflang = "tr" })
    </li>
    <li>
        @Html.ActionLink("EN", @action, @controller, new { culture = "en" }, new { rel = "alternate", hreflang = "en" })
    </li>
</ul>

但如果我想在Bootstrap选择控件中执行此操作,它只会显示文本而不会显示在我的网址中。

<select class="bs-select form-control" data-width="auto" id="js-data-example-ajax" name="js-data-example-ajax">
    <option>@Html.ActionLink("TR", @action, @controller, new {culture = "tr"}, new {rel = "alternate", hreflang = "tr"})</option>
    <option>@Html.ActionLink("EN", @action, @controller, new { culture = "en" }, new { rel = "alternate", hreflang = "en" })</option>
</select>

2 个答案:

答案 0 :(得分:0)

我在我的项目中做了同样的事情,请参考下面的代码:

我使用JavaScript完成了这项工作。

我的.cshtml代码:

@Html.DropDownList(
    "url",
    new SelectList(new[]
    {
        new SelectListItem { Text = "About", Value = Url.Action("About", "Home") },
        new SelectListItem { Text = "MyPage", Value = Url.Action("Index", "Home") },
        new SelectListItem { Text = "APage", Value = Url.Action("AnyPage", "Home") },
    }, "Value", "Text"),
    "-- Pick an URL ---",
    new { id = "urlddl" }
)

我的JQuery代码:

$(function() {
    $('#urlddl').change(function() {
        var url = $(this).val();
        if (url != null && url != '') {
            window.location.href = url;
        }
    });
});

使用jQuery,您可以订阅此下拉列表的更改事件并导航到相应的URL。

希望它能解决你的问题。

由于

答案 1 :(得分:0)

你还有其他选择

<option data-url="@Url.Action(@action, @controller)">
 TR
</option>

你在jquery中的下拉列表更改事件看起来像

$('#js-data-example-ajax').on('change', function() {
        var yourUrl = $('#js-data-example-ajax').find(":selected").data('url');
        document.location = yourUrl ;
    });
相关问题