下拉列表在mvc和jquery中无法正常工作

下拉列表在mvc和jquery中无法正常工作,jquery,html,asp.net-mvc-4,Jquery,Html,Asp.net Mvc 4,我尝试下拉选择值显示,但当前在重定向页面后,再次显示默认选择的列表文本。 请建议我如何在下拉菜单中显示当前选定的文本 <select id="HomepageUrlList" onchange="DropDownHomepageUrl()"> <option value="">List</option> <option value="@Url.Action("Aboutus", "Home")">About us</optio

我尝试下拉选择值显示,但当前在重定向页面后,再次显示默认选择的列表文本。 请建议我如何在下拉菜单中显示当前选定的文本

<select id="HomepageUrlList" onchange="DropDownHomepageUrl()">
    <option value="">List</option>
    <option value="@Url.Action("Aboutus", "Home")">About us</option>
    <option value="@Url.Action("Contactus", "Home")">Contact us</option>
 </select>
您可以将所选ID添加到URL,然后在下一页加载时读取该ID,例如:

第1页:

function DropDownHomepageUrl() {
    var strHomepageUrlListId = $("#HomepageUrlList option:selected").text();
    window.location.href = 
        document.getElementById("HomepageUrlList").value
        + "?selected=" + strHomepageUrlListId;
}
第2页:

$(function() { 
    $("#HomepageUrlList").val(getUrlVars()["selected"]);
});

// From https://stackoverflow.com/a/4656873/2181514
function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}
ContactUs.cshtml

....
  <option selected value="@Url.Action("Aboutus", "Home")">About us</option>
  <option value="@Url.Action("Contactus", "Home")">Contact us</option> 
....
  <option value="@Url.Action("Aboutus", "Home")">About us</option>
  <option selected value="@Url.Action("Contactus", "Home")">Contact us</option> 
如果不需要枚举,则作为字符串传入。然后,可以在渲染期间读取该值并选择正确的值


这样,您还可以删除FOUC,只有在页面加载后才更新下拉列表(坦白说,这看起来有点垃圾)。

这一行后面的所有内容
window.location.href=document.getElementById(“HomepageUrlList”).value将不会执行,因为您切换页面。如果要保留该值,您需要查看会话或cookie。
....
  <option value="@Url.Action("Aboutus", "Home")">About us</option>
  <option selected value="@Url.Action("Contactus", "Home")">Contact us</option> 
@Html.Partial("urlNavigator", Page.AboutUs)