2011-04-17 48 views
1

在Mono 2.10.1下運行時,發佈到視圖窗體的模型的簡單控制器操作未綁定到窗體域。在MS.NET下,相同的代碼按照預期執行,模型中填充了相應的表單值。在MVC3應用程序中將null傳遞給動作參數的模型

控制器動作被定義爲:

[HttpPost] 
public ActionResult Login(LoginModel login, string returnUrl) 
{ 

第一個參數時的形式在Mono提交,並與下MS.NET登錄表單字段完全填充login爲空。

表單字段可以通過Mono下的Request.Form集合(即Request.Form["UserName"])訪問,所以它似乎只是不起作用的綁定。

這曾經是一個MVC2應用程序 - 任何人都經歷過類似的事情?

+0

是否有可能通過'DefaultModelBinder'查看差異在哪裏? – 2011-04-17 09:03:07

回答

0

我將其跟蹤到了我們註冊的自定義數據註釋模型驗證提供程序,以處理我們自己的在模型屬性上定位錯誤消息(如必需和顯示名稱)的方式。

談到了下面的行:

DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof運算(LocalizedRequiredAttribute)的typeof(RequiredAttributeAdapter));

來自全球asax修復了問題,並且自定義模型驗證程序仍然有效 - 看起來它是從MVC2天開始的一個懸掛。

相關問題