2

我在我的母版页中使用以下代码:

<%  Html.RenderAction("RecentArticles","Article"); %>

最近的文章操作(在 ArticleController 中)是:

[ChildActionOnly]
    public ActionResult RecentArticles()
    {
        var viewData = articleRepository.GetRecentArticles(3);

        return PartialView(viewData);
    }

以及我最近的Articles.ascx 部分视图中的代码:

<li class="title"><span><%= Html.ActionLink(article.Title, "ViewArticle", new { controller = "Article", id = article.ArticleID, path = article.Path })%></span></li>

问题是文章的所有链接(构建在局部视图中)都指向相同的 url-“~/Article/ViewArticle”。我希望每个标题链接都能使用我在部分视图中设置的参数指向特定文章。

谢谢。

4

2 回答 2

2

我认为你没有ActionLink正确使用。ActionLink将代码更改为:

Html.ActionLink(
    article.Title,
    "ViewArticle",
    "Article",   // put the controller here
    new
    {
        id = article.ArticleID,
        path = article.Path 
    },
    null)

注意nullat then 结束。

编辑:你为什么[ChildActionOnly]在你的控制器中使用?由于它是 MVC 2 功能,我假设您使用的是 MVC2?尝试删除它并查看以下文章:

http://www.davidhayden.me/2009/11/htmlaction-and-htmlrenderaction-in-aspnet-mvc-2.html

我认为这个问题与你的部分不渲染有关。我将首先尝试验证您的局部渲染是否正确。一旦您确认开始调试部分不输出的原因。

于 2010-03-11T23:55:11.103 回答
0

我能够通过在最近的文章操作中使用以下调用来解决问题:

return PartialView("~/Views/Shared/Article/RecentArticles.ascx", viewData);

似乎部分视图根本没有被渲染,

谢谢 !

于 2010-03-13T19:09:10.347 回答