2014-05-19 26 views
0

你好以我的HomeController我有它返回一個強類型的局部視圖的操作當MVC局部視圖點擊「在新窗口中打開」上Ajax.ActionLink重新加載整個頁面

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。是否有我可以說的任何方法 - 如果用戶右鍵單擊「在新窗口中打開」 - 轉到索引操作並重新加載整個頁面。

回答

0

您可以在控制器的操作方法檢查Request.IsAjaxRequest()

if (!Request.IsAjaxRequest()) 
{ 
    return //go to action for none ajax request 
} 
+0

是的,我已經加上你的代碼,現在我得到了一個錯誤「孩子的行爲是不允許進行重定向操作。」 –

+0

實現後,你的代碼是什麼樣的!Request.IsAjaxRequest()? – AlexC

相關問題