2011-09-28 179 views
0

我有以下結構:顯示動態內容3

  1. 的Site.Master

  2. 首頁 - 查看

  3. 的HomeController - 控制器

在Site.Master中,我有一個包含多個ActionLink的標題,其中一個是Faq。在主視圖中,我擁有基本顯示靜態內容的HTML,但是,在中心窗格/ div中,我希望基於用戶點擊的某些HTML.ActionLinks獲得動態內容。因此,例如,最初,我希望中心DIV顯示一個介紹 - 但是如果用戶點擊我的Faq ActionLink,我希望中心DIV顯示特定於我的常見問題解答的內容。

在HomeController中我有以下幾點:

[HttpGet] 
    public ActionResult Intro() 
    { 
     var introRequest = _gatewayService.GetContent(new GetContentRequest { Content = ContentTypes.Introduction }); 

     ViewData["content"] = introRequest.Result; 

     return View(); 
    } 

[HttpGet] 
    public ActionResult Faq() 
    { 
     var faqRequest = _gatewayService.GetContent(new GetContentRequest { Content = ContentTypes.Faq }); 

     ViewData["content"] = faqRequest.Result; 

     return View(); 
    } 

的想法是,該動作鏈接,常見問題看起來是這樣的:

<%= Html.ActionLink("Faq","Faq","Home") %> 

回答

0

首先,你需要改變的結果你的操作方法在你的控制器中,而不是actionresult你可以用jsonresult 二,在視圖中你可以用jquery加載動態內容

1

正如@Valamas所說,使用Ajax.ActionLink。例如,
在標記:

<div id=」faqContent」> 
    @Ajax.ActionLink(「Click here to see FAQ!」, 
     「Faq」, 
     new AjaxOptions{ 
     UpdateTargetId=」faqContent」, 
     InsertionMode=InsertionMode.Replace, 
     HttpMethod=」GET」 
     }) 
</div> 

而在控制器:

public ActionResult Faq() 
{ 
    var faqRequest = _gatewayService.GetContent(new GetContentRequest { Content = ContentTypes.Faq }); 

    return PartialView("Faq", faqRequest.Result); 
} 

最後有與常見問題所需的HTML的局部視圖Faq.chtml。