【问题标题】:MVC Partial View on Dropdown change下拉更改的 MVC 部分视图
【发布时间】:2017-02-22 07:16:28
【问题描述】:

我对 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:

$('#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);
            }
        });
    });

【问题讨论】:

  • id="txtAlegeProfil" 的元素是什么?该脚本是在主视图中还是在部分视图中?
  • 这是我的下拉 ID,位于主视图中。
  • 使用 div.empty() 而不是 div.html('') 并检查 onchange="functionname()"
  • 改变它的工作。第一次更改工作正常,但第二次我的部分正在加载 2 次,依此类推。
  • 我认为发布调用的“主”视图的完整(或更详细)...其中包含 txtAlegeProfildivProfile 的视图。那里一定有什么事情会触发多个呼叫

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


【解决方案1】:

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

【讨论】:

  • 对问题的第一个评论 - 该脚本是在主视图中还是部分? :)
  • 抱歉,没有注意到这在主要和部分视图中都有。谢谢。
【解决方案2】:

不要将javascript 用于onchange在下拉列表中使用MVC onchage 属性作为HTML 属性

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-31
    • 2017-06-18
    • 1970-01-01
    相关资源
    最近更新 更多