2011-09-28 134 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。