Asp.net mvc 2 无视图控制器?

Asp.net mvc 2 无视图控制器?,asp.net-mvc-2,Asp.net Mvc 2,我正在使用ASP.NETMVC,我有一个模型类,它表示一组数据,这些数据与一个实体关联,但由另一个实体创建。例如,给定以下ViewModels public class User { public int UserId { get; set; } public IEnumerable<NewsComment> Comments { get; set; } } public class News { public int NewsId { get; set; }

我正在使用ASP.NETMVC,我有一个模型类,它表示一组数据,这些数据与一个实体关联,但由另一个实体创建。例如,给定以下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 });
   }
}
公共类用户{
public int UserId{get;set;}
公共IEnumerable注释{get;set;}
}
公共类新闻{
public int NewsId{get;set;}
公共字符串新闻{get;set;}
公共IEnumerable注释{get;set;}
}
公共类新闻评论{
public int NewsCommentId{get;set;}
公共字符串注释{get;set;}
public int NewsId{get;set;}
public int UserId{get;set;}
}
公共类新闻控制器:控制器
{
公共行动结果索引()
{
返回视图(ListAllNews());
}
公共操作结果详细信息(int newsId)
{
返回视图(GetNewsItem(newId));
}
}
公共类控制器:控制器
{
[接受动词(HttpVerbs.Post)]
公共void Create()
{
int newsId=Request[“news_id”];
int userId=Request[“user_id”];
字符串注释=请求[“注释”];
SaveNewsComment(新闻ID、用户ID、注释);
返回RedirectToAction(“详细”、“新闻”,new{newsId=newsId});
}
}
如果我只在“新闻/详细信息”视图或“用户/详细信息”视图上显示评论,并且评论发布在“新闻/详细信息”视图上,那么

  • 是否需要一个新闻控制器
  • NewsCommentController是否应该只有一个创建操作,该操作在该方法完成后从调用并重定向回NewsController/Detail操作
  • 我应该使用
    RenderAction
    从NewsCommentController中列出我的评论吗
  • 或者所有这些都可以在NewsController或UserController中完成,以适当的为准

  • 如果您的新闻/详细信息视图发布了新的评论,那么您不需要有NewsCommentController。您的
    NewsComment
    类本身不是ViewModel。

    什么是“NewsCommentController”?我在您的代码示例中没有看到它。我使用的是ASP.NET MVC。模式是一个控制器,负责将数据从模型传递到特定视图,并在模型和视图之间传递更改。NewsCommentController在这里是一种隐含类。我还是要展开。那么NewsController可以有一个CreateComment操作吗?是的。没有硬性规定每个模型类必须有相应的视图。