2008-08-26 82 views
1

在處理表單POST我有類似單元測試使用BindingHelperExtensions.UpdateFrom的ASP.NET MVC操作方法的最佳方法?

public ActionResult Insert() 
    { 
     Order order = new Order(); 
     BindingHelperExtensions.UpdateFrom(order, this.Request.Form); 

     this.orderService.Save(order); 

     return this.RedirectToAction("Details", new { id = order.ID }); 
    } 

我沒有,因爲我預計會有適應等領域的可變數目,並與20多個參數的方法是沒有吸引力的方法使用顯式參數。

我想我的唯一選擇是模擬整個HttpRequest,相當於Rob Conery所做的。這是最佳做法嗎?很難用一個如此新的框架來說明。

我也看到了使用一個ActionFilter涉及解決方案,使您可以將上面的方法簽名像

[SomeFilter] 
public Insert(Contact contact) 

回答

1

我現在使用ModelBinder,使我的操作方法可以看(基本上),如:

public ActionResult Insert(Contact contact) 
    { 

     if (this.ViewData.ModelState.IsValid) 
     { 
      this.contactService.SaveContact(contact); 

      return this.RedirectToAction("Details", new { id = contact.ID }); 
     } 
     else 
     { 
      return this.RedirectToAction("Create"); 
     } 
    } 
0

在接口包裹它,嘲笑它。