关于下拉列表更改的MVC部分视图

时间:2017-02-22 07:16:28

标签: jquery asp.net-mvc asp.net-mvc-4 drop-down-menu asp.net-mvc-partialview

我在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);
            }
        });
    });

2 个答案:

答案 0 :(得分:0)

如果有人有兴趣,问题是我对主视图和部分视图使用了相同的javascript文件。 更改下拉列表功能必须位于仅在主视图中使用的javascript文件中。

答案 1 :(得分:0)

不要使用javascript onchange在下拉菜单中使用MVC onchage属性作为HTML属性

onchange = "document.location.href = '/Home/PartialOtherProfile?uid=' + this.options[this.selectedIndex].value;"