- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发我的第一个 .NET MVC 应用程序并使用 NerdDinner 教程作为引用点。目前让我感兴趣的一点是UpdateModel()
方法。 (我不喜欢使用我不太了解的东西。)
取自 NerdDinner tutorial -
//
// POST: /Dinners/Edit/2
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, FormCollection formValues) {
Dinner dinner = dinnerRepository.GetDinner(id);
UpdateModel(dinner);
dinnerRepository.Save();
return RedirectToAction("Details", new { id = dinner.DinnerID });
}
UpdateModel()
可以访问在 Edit 方法中传递的 formValues 吗?为什么集合没有作为参数显式传递给方法?
最佳答案
UpdateModel() 是一个 Controller 辅助方法,它尝试将一堆不同的输入数据源(来自 View 的 HTTP POST 数据、QueryString 值、 session 变量/Cookie 等)绑定(bind)到您指定为参数的显式模型对象。本质上,它仅用于模型绑定(bind)。
如果您将 Action 的输入参数表示为强类型模型(如 View 模型),那么您已经完成了调用 UpdateModel() 时在后台完成的所有步骤。如果您从 DataContext 中检索一个对象并编辑其属性,则只需 SaveChanges() 即可将更新推送回数据库(在本例中为 Save())。
例子:
//
// POST: /Dinners/Edit/2
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(DinnerViewModel incoming) {
var dinner = dinnerRepository.GetDinner(incoming.DinnerID);
dinner.Description = incoming.Description;
dinnerRepository.Save();
return RedirectToAction("Details", new { id = incoming.DinnerID });
}
//
// POST: /Dinners/Edit/2
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(DinnerViewModel incoming) {
var dinner = dinnerRepository.GetDinner(incoming.DinnerID);
UpdateModel(dinner);
dinnerRepository.Save();
return RedirectToAction("Details", new { id = incoming.DinnerID });
}
关于asp.net-mvc - ASP.NET MVC UpdateModel() 方法是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1087279/
通俗地说,UpdateModel()和TryUpdateModel()是做什么的?我似乎无法(在 SO 或网络上)找到任何关于它实际做什么的明确解释(用明确的术语),只是人们在使用它时遇到问题。 Vi
对于使用 EF4 在 ASP.NET MVC 3 中保存对我的编辑模型对象的更改的正确方法,我有点困惑,尤其是当我想在保存之前进行一些服务器端清理时。我的操作方法是: [HttpPost] publi
我有一个名为 S2kBool 的自定义对象,它可以与常规 bool 对象相互转换。基本上,它允许我的应用程序像对待 C# bool 值一样对待旧数据库中的 bool 值。那么问题是,当我尝试使用复选框
作为引用,这是在 C# MVC2 网站中。 我想在我的数据库中使用模型保存数据,但我需要使用自定义数据而不是我习惯的 FormCollection 来保存数据。以下是我通常的做法: TryUpdate
我创建了一个 ASP.NET MVC 5 应用程序,其以下模型类在其 Email 属性上使用了globalized Required validation 属性: public class Perso
我一直在努力阅读 Scott Guthrie 在 ASP.NET MVC Beta 1 上的精彩帖子。 .在其中,他展示了对 UpdateModel 方法的改进以及它们如何改进单元测试。我重新创建了一
我有一些关于 asp.net mvc 开发的简单问题。 UpdateModel 和 TryUpdateModel 有什么用?以及哪个条件适用于使用 UpdateModel 或 TryUpdateMod
尝试让 UpdateModel 为我的用户工作。 User 类具有基本的字符串属性,如 CompanyName、FirstName、LastName 等,因此没有什么奇怪的。 这是我的 View 的标
我正在寻找对在运行时检索的子类使用 UpdateModel 方法,如果有人能够阐明我是否正在对其进行总哈希和/或是否是我的内容,那就太好了我尝试做的事情是可能的。 我正在使用通用操作来控制一堆部分 V
假设您有一个看起来像这样的模型: public class MyClass { public string Name { get; set; } public DateTime MyD
是否有可能在 MVC Controller 中有效地做这样的事情: var vmObject = Activator.CreateInstance("A string representing the
我正在尝试通过调用 UpdateModel(myObject, new[] { "stringprop1", "stringprop2", "intprop"}) 来更新一些对象属性。 由于未知原因而
这个问题在这里已经有了答案: Do you ever need to specify 'javascript:' in an onclick? (8 个答案) 关闭 5 年前。 我经常看到带有指定
如何使用ASP.NET MVC UpdateModel执行以下操作?我试图在空间中读取限定的文本框数据(就像新的StackOverflow问题中的TAGS文本框,例如这样)到模型中。 例如。 ...
我想在不知道 View 类型的 Controller 中使用 updateModel。我有不同的 View ,它们具有不同的类型,但都有一个ExternalBase 类作为继承类型。 所以在我的 Co
我是 MVC 的新手,所以正在学习 NerdDinner 教程,here .特别是,我在使用 UpdateModel 方法时遇到了问题,该方法在该教程的第五部分中进行了解释。问题是,当我尝试使用 Up
鉴于以下模型, public class A { public string Name { get; set; } } public class B { public string A
我有一个类似于日历的 ASP.NET MVC 应用程序。根据 NerdDinner 示例,我正在使用 UpdateMethod() 更新编辑页面的结果 在我的应用程序中,某些事件是完全可定制的,而某些
我有一个关于如何让 MVC Controller 的 UpdateModel/TryUpdateModel 的白名单和黑名单功能处理子对象的各个属性的问题。例如,假设我有一份问卷,收集有关填写表格的人
我不确定这是 DefaultModelBinder 类中的错误还是什么。 但是 UpdateModel 通常不会更改模型的任何值,除了它找到匹配的值。 看看以下内容: [AcceptVerbs(Htt
我是一名优秀的程序员,十分优秀!