下拉列表在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)