点击"在新窗口中打开"在MVC局部视图中的Ajax.ActionLink上重新加载整个页面

时间:2014-05-19 12:55:37

标签: jquery ajax asp.net-mvc

Hello在我的homeController中,我有一个返回强类型局部视图的动作

 public virtual ActionResult ImportShow(String id, String menuID, string articlegroupID)
        {

            GroupMenu p_GroupMenu = new GroupMenu();
            p_GroupMenu.LanguageName = p_country;


             p_GroupMenu.MenuHistory = p_GetMenuHistory.ToList();
            p_GroupMenu.MenuLeft = p_GetMenuLeft.ToList();

            return PartialView("ImportShow",p_GroupMenu);
        }

在我的partialView ImportShow中,我只渲染了两个局部视图

@model  MvcBeaWeb.GroupMenu

    <div id="importPartUpdate">
        <div class="heading-history">  


                @Html.Partial("MenuHistoryShow")

        </div>
        <aside id="asideIndex">
            <div class="leftMenu">
                <div id="sidebar">

                     @Html.Partial("MenuLeftShow")



                </div>
            </div>

在我的MenuLefShow PartialView中,我有一个Ajax.ActionLink,它再次指向ImportShow操作方法,它将更新importPartUpdate div

@model MvcBeaWeb.GroupMenu

<div class="divLeftShowMenu">
    <ul>
        @{
            if (Model != null)
            {
                foreach (MvcBeaDAL.WebServiceBeaMenu item in Model.MenuLeft)
                {

                  <li id="@item.ID">

                    @Ajax.ActionLink(item.SpecialWord, "ImportShow", "Home", new { id = Model.LanguageName, menuID = item.ID, articlegroupID=item.ArticlegroupID }, new AjaxOptions
                    {
                       UpdateTargetId = "importPartUpdate",
                       HttpMethod = "GET",
                       InsertionMode = InsertionMode.Replace
                    })

                  </li> 
                }
            } 
        }
    </ul>
</div> 

- 所以问题是 - 例如当用户单击“在新的窗口中打开”时 - 这意味着在新窗口中将只有这个“ImportPartUpdate”div。所以我可以说任何方法 - 如果用户右键单击“在新窗口中打开” - 转到索引操作并重新加载整个页面。

1 个答案:

答案 0 :(得分:0)

您可以在控制器操作方法

中查看Request.IsAjaxRequest()
if (!Request.IsAjaxRequest())
{
     return //go to action for none ajax request
}