2013-06-24 202 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

不,你不知道。还有其他方法可以处理诸如子动作或表单前缀等。 –