早上好,我会尽量解释清楚。
该页面返回特定帐户的信息,但有些人可能使用多个帐户,我希望提供在它们之间切换的功能。
目前我的路线设置为:
{controller}/{action}/{accountcode}
{accountcode}
可以为空,并在操作中检查并设置为您的默认代码。
到目前为止,我的工作正常,因此您可以访问以下 URL:
{controller}/{action} OR {controller}/{action}/{accountcode}
因此,我设置了一个下拉列表,为您提供您有权访问的列表,并在选择时将您发送到该特定帐户的 URL。
当我去{controller}/{action}
并选择时,这很有效,因为它需要window.location.href
并附加下拉列表值。
但是,当您位于{controller}/{action}/{accountcode}
下拉重定向到的位置并选择一个帐户时,它只是尝试附加另一个帐户代码,因为我的 JavaScript 逻辑很简陋。
我想我正在寻找一种方法来获取当前操作的 URL,而不需要任何参数,以便我自己定义它们。这是我苦苦挣扎的地方,因为我无法使用 Url Helper 或 Route Helper 方法,因为此功能位于布局页面中,实际上意味着我需要获取当前页面的操作。
这是我的代码,希望它提供清晰:
@if ((ViewBag.Accounts ?? new List<string>{"none"}).Count > 1)
{
@Html.DropDownList("accounts", new SelectList(ViewBag.Accounts, ViewBag.AccountCode))
}
$(function() {
$("#accounts").change(function () {
window.location.href = window.location.href + "/" + $(this).val();
});
});
干杯!