2013-06-24 181 views
-1

我是新來建模bindingcontext和不明白爲什麼我一直對結果ASP.NET MVC ModelBindingContext問題

越來越 null

據我瞭解,我需要以關閉驗證實施IUnvalidatedValueProvider(如用戶發佈html)。

public class AccountFormBinder : IModelBinder 
{ 
    public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) 
    { 
     //Cast the value provider to an IUnvalidatedValueProvider, which allows to skip validation 
     IUnvalidatedValueProvider provider = bindingContext.ValueProvider as IUnvalidatedValueProvider; 
     var result = provider.GetValue(bindingContext.ModelName,true); 
     return result.AttemptedValue; 
    } 
} 

回答

0

我到底這樣做

HttpRequestBase request = controllerContext.HttpContext.Request; 
var re = request.Unvalidated("CMessage"); 
0

所以,你只是想允許發佈HTML?你不需要一個自定義的模型綁定器。只需添加[AllowHtml]到任何屬性應該允許HTML包含交值:

public class MyViewModel 
{ 
    ... 
    [AllowHtml] 
    [DataType(DataType.Html)] 
    public string Content { get; set; } 
    ... 
} 
+0

FYI我的頁面上部分觀點的混合,所以我必須使用自定義模型綁定器 –

+0

不,你不知道。還有其他方法可以處理諸如子動作或表單前綴等。 –