Javascript 索引页排序集合的附加参数

Javascript 索引页排序集合的附加参数,javascript,html,asp.net-mvc,action,Javascript,Html,Asp.net Mvc,Action,我有一个页面,它将问题对象呈现为一组。(我也使用分页,但我认为这对于这个特定问题没有任何意义) 我想让用户有机会选择项目显示的顺序(即基本问题列表的顺序) 我认为使用列表是一种简单的方法,但它似乎不起作用。我主要是在努力从Javascript从我的控制器调用操作。到目前为止,我已经做到了: 我的HTML: <select id="sort-select" style="margin-bottom: 10px"> @foreach (SortingType value in E

我有一个页面,它将问题对象呈现为一组
。(我也使用分页,但我认为这对于这个特定问题没有任何意义)

我想让用户有机会选择项目显示的顺序(即基本问题列表的顺序)

我认为使用
列表是一种简单的方法,但它似乎不起作用。我主要是在努力从Javascript从我的控制器调用操作。到目前为止,我已经做到了:

我的HTML:

<select id="sort-select" style="margin-bottom: 10px">
    @foreach (SortingType value in Enum.GetValues(typeof (SortingType)).Cast<SortingType>())
    {
        <option value="@((byte)value)">@(value.ToString())</option>
    }
</select>
这当然会在document.ready中调用

问题是,当JS运行时,它将所有的符号(&)组成它们的转义等价物(&)。当然,这不起作用,因为控制器操作的参数由纯符号分隔

当我尝试更改选择时,我将此作为链接:

http://localhost:41084/Question?topicId=-1&amp;sort=0

有人知道我该如何解决这个问题吗?我不确定如何以正确的方式从Javascript调用操作,我也不知道Javascript是否是解决这个问题的方法。

发现解决方案必须执行
url=url.replace(…)
而不仅仅是
url.replace(…)

我的javascript现在如下所示:

function AddSort() {
    var select = document.getElementById('sort-select');

    select.onchange = function(event) {
        var selected = select.options[select.selectedIndex].value;

        var url = encodeURI("@Url.Action("Index", "Question", new {topicId = ViewBag.TopicId, sort = 0})");
        url = url.replace('&amp;', '&');
        url = url.replace(0, selected);

        window.location.href = url;
    }


}
function AddSort() {
    var select = document.getElementById('sort-select');

    select.onchange = function(event) {
        var selected = select.options[select.selectedIndex].value;

        var url = encodeURI("@Url.Action("Index", "Question", new {topicId = ViewBag.TopicId, sort = 0})");
        url = url.replace('&amp;', '&');
        url = url.replace(0, selected);

        window.location.href = url;
    }


}