我在母版页中使用以下代码:
<% Html.RenderAction("RecentArticles","Article"); %>
其中RecentArticles Action(在ArticleController中)是:
[ChildActionOnly]
public ActionResult RecentArticles()
{
var viewData = articleRepository.GetRecentArticles(3);
return PartialView(viewData);
}
以及我的RecentArticles.ascx局部视图中的代码:
<li class="title"><span><%= Html.ActionLink(article.Title, "ViewArticle", new { controller = "Article", id = article.ArticleID, path = article.Path })%></span></li>
问题是文章的所有链接(在部分视图中构建)导致相同的url-“〜/ Article / ViewArticle”。 我希望每个标题链接指向具有参数的特定文章,例如我在局部视图中设置。
感谢。
答案 0 :(得分:2)
我认为你没有正确使用ActionLink
。将ActionLink
代码更改为:
Html.ActionLink(
article.Title,
"ViewArticle",
"Article", // put the controller here
new
{
id = article.ArticleID,
path = article.Path
},
null)
请注意当时的null
。
编辑:为什么在控制器中使用[ChildActionOnly]
?由于它是MVC 2功能,我假设您使用的是MVC2?尝试删除它并查看以下文章:
http://www.davidhayden.me/2009/11/htmlaction-and-htmlrenderaction-in-aspnet-mvc-2.html
我认为这个问题与你的部分不渲染有关。我首先尝试验证你的部分是否正确渲染。一旦确认开始调试部分未输出的原因。
答案 1 :(得分:0)
我能够通过在RecentArticles动作中使用以下调用来解决问题:
return PartialView("~/Views/Shared/Article/RecentArticles.ascx", viewData);
似乎部分视图根本没有渲染,
谢谢!