Я использую 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 });
}
}
Если я только когда-либо отображаю комментарии в представлении Новости / Подробности или в представлении Пользователь / Подробности, а комментарии публикуются в представлении Новости / Подробности, тогда
- Нужен ли NewsCommentController?
- Должен ли NewsCommentController иметь только действие Create, которое вызывается и перенаправляет обратно на действие NewsController / Detail после завершения этого метода?
- Должен ли я использовать
RenderAction
для вывода моих комментариев из NewsCommentController? - Или все это можно сделать из NewsController или UserController, в зависимости от того, что подходит?