_ViewStart.cshtml的Html不正确的渲染并没有Viewbag.Title使用Ajax.ActionLinks
@{
Layout = Request.IsAjaxRequest() ? null : "~/Views/Shared/_Layout.cshtml";
}
_Layout.cshtml设置
...
</head>
<body>
<div id="NavigationPanel">
@{ AjaxOptions options = new AjaxOptions
{
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "ContentPanel",
OnBegin = "OnBeginAnimateContentPanel",
OnComplete = "OnCompleteAnimateContentPanel",
};}
<div>
<p>@Ajax.ActionLink("Users", "Index", "User", options)</p>
<p>@Ajax.ActionLink("Groups", "Index", "Group", options)</p>
<p>@Ajax.ActionLink("Permissions", "Index", "Permission", options)</p>
</div>
</div>
<div id="ContentPanel">
@RenderBody()
</div>
</body>
</html>
的global.asax.cs
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Main", action = "Index", id = UrlParameter.Optional }
);
}
MainController.Index行动:
public ActionResult Index()
{
return View();
}
主视图Index.cshtml
@{
ViewBag.Title = "Test-Index";
}
this is the Index View of the MainController
索引视图+行动为用户/组/许可控制器就像是MainController的指数。标题设置为ViewBag和一些小测试文本。
这里有一件事出错了。
当我点击其中一个Ajax.ActionLInks时,虽然View在#ContentPanel中正确呈现,但每个View(用户/组/权限)的标题都是不可见的,但是当我检查html源代码时:
ContentPanel中的内容是索引视图中的内容?
这是为什么,我怎样才能为每个Ajax.ActionLink设置我的View标题?
<body>
<div id="NavigationPanel">
<p><a data-ajax="true" data-ajax-begin="OnBeginAnimateContentPanel" data-ajax-complete="OnCompleteAnimateContentPanel" data-ajax-mode="replace" data-ajax-update="#ContentPanel" href="/User">Users</a></p>
<p><a data-ajax="true" data-ajax-begin="OnBeginAnimateContentPanel" data-ajax-complete="OnCompleteAnimateContentPanel" data-ajax-mode="replace" data-ajax-update="#ContentPanel" href="/Group">Groups</a></p>
<p><a data-ajax="true" data-ajax-begin="OnBeginAnimateContentPanel" data-ajax-complete="OnCompleteAnimateContentPanel" data-ajax-mode="replace" data-ajax-update="#ContentPanel" href="/Permission">Permissions</a></p>
</div>
<div id="ContentPanel">
this is the text within the Index View of the MainController
</div>
</body>
这将是答案的50%。为什么当我点击一个Ajax.ActionLink时,我的标题没有显示,我该如何解决? – Pascal 2012-04-19 20:12:38
我更新了答案......我希望它有帮助。 – 2012-04-19 20:24:59
我会将您的答案标记为独立于此进一步问题的解决方案,也许您也知道答案:)我的MainController Index操作实际上毫无价值。它只是一个起点......是不是可以直接使用_Layout.cshtml文件开始? – Pascal 2012-04-19 20:48:35