【发布时间】:2011-10-12 05:26:27
【问题描述】:
看不懂,如何使用 TryUpdateModel 和保存 MVC 架构的同时。
如果我没记错的话,使用数据上下文的工作必须在模型中。所以,这样的代码
var db=new TestEverybody();//it is class, which was generated by EntityFramework
var currentTesting=db.Testing.(t => t.id == id).First();
必须位于模型中,而不是控制器中,不是吗?
但 TryUpdateModel 的常见用法示例如下:
public ActionResult Edit(Testing obj)//Testing collection
{
var db = new TestEverybody();
var currentTesting=db.Testing.(t => t.id == obj.id).First();
TryUpdateModel(currentTesting);
db.SaveChanges();
return RedirectToAction("Index");
}
这种方式不会破坏 MVC 架构吗?我们在控制器中使用数据库,而不是在特殊的 Model 类中。
那么,在实际项目中使用 TryUpdateModel 的最佳方式是什么?
【问题讨论】:
-
我的建议,在实际项目中,不要使用它。您应该使用视图特定模型并在视图模型的属性和您要更新的实体上的属性之间进行映射。 TryUpdateModel/UpdateModel 很贪心,会咬你……最终。
-
是 MVVM 模式吗?我在哪里可以了解您的方法?
-
不,这是 MVC(正确完成)。我在下面添加了一个答案来解释。希望这会有所帮助。
标签: asp.net-mvc model controller