Html.ActionLink в частичном представлении - PullRequest
2 голосов
/ 12 марта 2010

Я использую следующий код на своей главной странице:

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

где действие RecentArticles (в 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». Я хочу, чтобы каждая ссылка на заголовок приводила к конкретной статье с параметрами, которые я устанавливаю при частичном просмотре.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 12 марта 2010

Я думаю, что вы не используете 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

Я думаю, что проблема связана с вашим частичным не рендерингом. Я бы начал с того, что просто попытался проверить, правильно ли рендерит ваш фрагмент. Как только вы подтвердите, что начало отладки, почему частичное не выводится.

0 голосов
/ 13 марта 2010

Мне удалось решить проблему с помощью следующего вызова в моем действии RecentArticles:

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

Кажется, что частичное представление вообще не отображалось,

Спасибо!

...