它是否可以在没有java脚本的DropDownList中有Html.ActionLink?

时间:2011-05-22 12:51:10

标签: asp.net-mvc-3 razor

有可能有这样的东西吗?

@Html.DropDownListFor(
                @Html.ActionLink("About", "About", "Home")
                @Html.ActionLink("mypage","index","Home")
                @Html.ActionLink("apage","anypage","Home")

                @Html.ActionLink("Test","Test","home")
                @Html.ActionLink("pagetest", "tsetPage", "Home")
                );

1 个答案:

答案 0 :(得分:6)

不,没有javascript就不可能。特别是如果您希望页面在用户选择此下拉列表中的项目后导航到相应的地址。如果您不想使用javascript,可以将下拉列表放在HTML <form>中,但用户必须单击提交按钮才能导航。以下是使用javascript实现此目的的示例:

@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,您可以订阅此下拉列表的更改事件并导航到相应的URL:

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