部分视图内部的JQuery AJAX帖子

时间:2013-04-24 03:03:46

标签: c# jquery ajax asp.net-mvc-4 partial-views

在我的C#MVC4应用程序中,我有两个主要视图:“Index”和“Index_Perm”。登录用户的角色决定了呈现这些视图中的哪一个。 “Index”包含一个名为“PMain”的视图,而Index_Perm“包含一个名为”PMain_Lim“的视图。”PMain“和”PMain_Lim“包含另一个名为”Analysis“的局部视图。在”Analysis“中,我有这个脚本:

<script type="text/javascript" charset="utf-8">
    $(document).ready(function () {
        $('#SubmitAverage').click(function () {
            var $form = $('#form1');
            $.ajax({
                type: "POST",
                url: "Home/Average",
                data: $form.serialize(),
                success: function () {
                    alert("Edit successful");
                },
                error: function () {
                    alert('failure');
                }
            });
        });
    });
    </script>

我的问题是,当“索引”是被访问的主视图时,当单击“提交”按钮时,此脚本会正确运行。但是当“Index_Perm”是主视图时,单击该按钮时,AJAX帖子失败并显示错误:The resource you are looking for has been removed, had its name changed, or is temporarily unavailable. The directory or file specified does not exist on the Web server.在Firebug中进行一些调查后,我发现它正在尝试访问:mylocalhost/Home/Index_Perm/Home/Average而是of:mylocalhost/Home/Average,它被指定为在我的脚本中发送POST的url。 以下是“PMain”和“PMain_Lim”中相同的代码部分,其中包含与脚本关联的按钮:

    <div id="Analysis" title="Analysis">
        @Html.Action("Analysis", "Home", Model)
    </div>
</section>
<section>
         <h3>
            <button class="btn" id="SubmitAverage" value ="SubmitAverage" name="action:SubmitAverage" type="button">Submit Averages</button>
        </h3>
    </section>
<section>
    <div id="OtherView" title="OtherView" class="OtherChanges">
        @Html.Action("OtherView", "Home", (string)ViewBag.SearchKey)
    </div>
</section>

为什么忽略我在JQuery AJAX POST中使用的URL和/或如何纠正它的想法?

1 个答案:

答案 0 :(得分:1)

在你的ajax帖子中使用urlhelper

url: '@Url.Action("Average","Home")',