Контроллеры без доступа? - PullRequest
0 голосов
/ 05 августа 2010

Я использую ASP.NET MVC, и у меня есть класс модели, который представляет кусок данных, который связан с объектом, но создан другим.Например, учитывая следующие ViewModels,

public class User { 
   public int UserId { get; set; }
   public IEnumerable<NewsComment> Comments { get; set; }
}

public class News {
   public int NewsId { get; set; }
   public string News { get; set; }
   public IEnumerable<NewsComment> Comments { get; set; } 
}

public class NewsComment {
   public int NewsCommentId { get; set; }
   public string Comment { get; set; }
   public int NewsId { get; set; }
   public int UserId { get; set; }
}

public class NewsController : Controller
{
   public ActionResult Index()
   {
        return View(ListAllNews());
   }

   public ActionResult Detail(int newsId)
   {
       return View(GetNewsItem(newsId));
   }
}

public class NewsCommentController : Controller
{
   [AcceptVerbs(HttpVerbs.Post)]
   public void Create()
   {
      int newsId = Request["news_id"];
      int userId = Request["user_id"];
      string comment = Request["comment"];
      SaveNewsComment(newsId, userId, comment);
      return RedirectToAction("Detail","News",new { newsId = newsId });
   }
}

Если я только когда-либо отображаю комментарии в представлении Новости / Подробности или в представлении Пользователь / Подробности, а комментарии публикуются в представлении Новости / Подробности, тогда

  1. Нужен ли NewsCommentController?
  2. Должен ли NewsCommentController иметь только действие Create, которое вызывается и перенаправляет обратно на действие NewsController / Detail после завершения этого метода?
  3. Должен ли я использовать RenderAction для вывода моих комментариев из NewsCommentController?
  4. Или все это можно сделать из NewsController или UserController, в зависимости от того, что подходит?

1 Ответ

2 голосов
/ 05 августа 2010

Если ваш новостной / подробный вид публикует новые комментарии, то вам не нужен NewsCommentController.Ваш NewsComment класс не является ViewModel сам по себе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...