我在MVC项目中遇到部分视图的问题。对于第一次下拉更改,一切正常,但从第二个局部视图加载两次,第三次加载三次,依此类推。 你能帮助我看看我错过了什么吗? 或者根据下拉变化给我一个加载部分视图的解决方案,以根据我的选择获取信息?
谢谢!
主要观点:
<div id="divProfile">
@Html.Action("PartialOtherProfile","Home", new { uid = "uidkxxxx" })
</div>
部分视图控制器:
public PartialViewResult PartialOtherProfile(string uid)
{
if (uid != "uidkxxxx")
{
if (Convert.ToInt32(Session["UserDB"]) == 0)
{
return PartialView("NoAccessPage");
}
else
{
UserEntities8 user = new UserEntities8();
var data = user.GEt_USER_traseu_Other(uid.ToString()).ToList();
ViewBag.MasinaPersonala = data[0].MasinaPersonala;
ViewBag.Traseu_personal = data[0].Nume_statie;
ViewBag.NrTelefon = data[0].NrTelefon;
return PartialView("PartialOtherProfile");
}
}
return PartialView("ChoosePerson");
}
jQuery on change script:
$('#txtAlegeProfil').change(function () {
var uid = this.value;
$.ajax({
url: '/Home/PartialOtherProfile',
type: 'GET',
data: { uid: uid },
success: function (result) {
var div = $('#divProfile');
div.html('');
div.html(result);
}
});
});
答案 0 :(得分:0)
如果有人有兴趣,问题是我对主视图和部分视图使用了相同的javascript文件。 更改下拉列表功能必须位于仅在主视图中使用的javascript文件中。
答案 1 :(得分:0)
不要使用javascript
onchange
在下拉菜单中使用MVC onchage
属性作为HTML属性
onchange = "document.location.href = '/Home/PartialOtherProfile?uid=' + this.options[this.selectedIndex].value;"