Это мой контроллер

     [ActionName("Articles")]
     public ActionResult ArticleSubmitted()
       { 
        var articles = db.Articles.ToList()
            .OrderByDescending(e => e.PostedDate)
        .Select(e => new ArticleViewModel()
        {
           ArticleId = e.ArticleId,
           Title = e.Title,
           PostedByName = e.ApplicationUser.UserName,
           PostedDate = e.PostedDate,
           PageContent = e.PageContent
        });
        return View(articles);
    }

Я хочу использовать имя метода действия, но для его работы мне нужно изменить последнюю строку на:

  return View(ArticleSubmitted); 

Тогда он отобразит правильное имя действия, но в этом случае я не могу передавать статьи для просмотра, поэтому как изменить его, чтобы также возвращать статьи.

0
neo 28 Дек 2015 в 10:29

2 ответа

Лучший ответ

Вы должны использовать эти перегрузки представления, я думаю, он должен работать:

return View("ArticleSubmitted", articles);

Более того, если вы вызываете этот конкретный метод действия из другого места, измените имя метода действия с ArticleSubmitted на Articles следующим образом:

@Html.ActionLink("name of text", "Articles", "Controller name")
0
duke 28 Дек 2015 в 08:59

Используйте ViewData.Model, чтобы передать свою модель в Просмотр следующим образом:

 [ActionName("Articles")]
 public ActionResult ArticleSubmitted()
   { 
    var articles = db.Articles.ToList()
        .OrderByDescending(e => e.PostedDate)
    .Select(e => new ArticleViewModel()
    {
       ArticleId = e.ArticleId,
       Title = e.Title,
       PostedByName = e.ApplicationUser.UserName,
       PostedDate = e.PostedDate,
       PageContent = e.PageContent
    });
    ViewData.Model = articles;
    return View(ArticleSubmitted);
}
0
teo van kot 28 Дек 2015 в 07:37