我想知道使用Modelbinders的真正可测量优势是什么?
答案 0 :(得分:1)
而不是将原语发送到您的操作中:
public ActionResult Search(string tagName, int numberOfResults)
你得到一个自定义对象:
public ActionResult Search(TagSearch tagSearch)
这使您的搜索操作“更薄”(一件好事),更加可测试并减少维护。
答案 1 :(得分:0)
模型粘合剂
MVC中的模型绑定器提供了一个 映射已发布表单值的简单方法 到.NET Framework类型并传递 键入动作方法作为 参数。宾德斯也给你了 控制反序列化 传递给action的类型 方法。模型粘合剂就像类型 转换器,因为它们可以转换 HTTP请求进入对象 传递给一个动作方法。然而, 他们也有关于的信息 当前的控制器背景。
来自here。
答案 2 :(得分:0)
这是另一个好处:
您可以创建仅在给定ID的情况下从数据库中检索对象的模型绑定器。
这将允许您进行此类操作
// GET /Orders/Edit/2
public ActionResult Edit(Order order){
return View(order);
}
自定义ModelBinder
会为您进行数据提取,让您的控制器变得粗糙。
如果没有ModelBinder
,它可能看起来像这样:
// GET /Orders/Edit/2
public ActionResult Edit(int id){
var order = _orderRepository.Get(id);
// check that order is not null and throw the appropriate exception etc
return View(order);
}