是否应该在不健康的状态下创建对象?从Create controller传递到View

时间:2010-06-30 20:37:08

标签: c# asp.net-mvc asp.net-mvc-2

从控制器传递空白对象(例如客户端)有什么好处?

public ActionResult Create()
        {
            Client client = new Client();
            return View(client);
        }

        //
        // POST: /Client/Create
        [HttpPost]
        public ActionResult Create(Client clientToAdd)
        {
            try
            {
                clientRepository.Insert(clientToAdd);
                return RedirectToAction("Index");

相反:

 public ActionResult Create()
        {
            return View();
        }

        //
        // POST: /Client/Create
        [HttpPost]
        public ActionResult Create(Client clientToAdd)
        {
            try
            {
                clientRepository.Insert(clientToAdd);
                return RedirectToAction("Index");

原因是:对象(例如客户端)是否应该以“不健康”状态创建,即空白?

干杯

戴夫

1 个答案:

答案 0 :(得分:0)

考虑到MVC2的模板化助手以及EditorFor和DisplayFor增强功能,您的第一种技术实际上是首选方法。您必须具有模型对象才能从中派生元数据。没有模型,没有元数据,是配置驱动的MVC架构的约定的重要特征。

此技术还提供了方便的默认设置,并且像其他回答者所述,允许您重复添加/编辑视图以用于简单的场景。