我有以下结构:
的Site.Master
主页 - 查看
HomeController - Controller
在Site.Master中,我有一个包含多个ActionLink的标题,其中一个是常见问题解答。在Home视图中,我有基本上显示静态内容的HTML,但是,在中心窗格/ div中,我希望根据用户点击的某些HTML.ActionLinks获得动态内容。所以,例如,最初,我希望中心DIV显示一个介绍 - 但如果用户点击我的Faq ActionLink,我希望中心DIV显示特定于我的Faq的内容。
在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();
}
想法是Faq的动作链接看起来像:
<%= Html.ActionLink("Faq","Faq","Home") %>
答案 0 :(得分: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);
}
最后部分查看Faq.chtml,其中包含常见问题解答的html。
答案 1 :(得分:0)
首先,你需要在控制器中更改动作方法的结果,而不是动作结果你可以使用jsonresult 其次,在视图中,您可以使用jquery加载动态内容