2015-05-06 27 views
0

如何將發送的數據更改爲某些類似OnActionExcuting的控制器?通過操作處理之前更改模型值

試想想開發一箇中間件(類似asp.net屬性)全部替換「一」到「A」,然後綁定值模型(在所有的行動只是可以看到「A」!)

+1

您需要創建一個自定義'ModelBinder'(這是在發生結合 –

+0

@StephenMuecke管道中的點,但如果我不這麼做。想要在所有操作中使用它,我如何使用自定義ModelBinder來管理它? – Behrooz

+0

太寬泛,無法給出答案。您需要做一些研究b使用自定義'ModelBinders'來轉換髮布的表單值爲大寫[在這裏]一些例子[這裏](http://stackoverflow.com/questions/17704818/uppercase-attribute-that-c​​onverts-the-input-to-uppercase)和[這裏](http://www.c-sharpcorner.com/UploadFile/cda5ba/model-binding-in-mvc-a-magical-mapper/)和[這裏](https://gist.github.com/andreabalducci/773608) –

回答

0

您可以創建一個自定義的模型綁定器並使用它的具體行動:

[HttpPost] 
public ActionResult CreateSomething([ModelBinder(typeof(MyCustomModelBinder))] Something something) 
{ 

} 

public class MyCustomModelBinder : DefaultModelBinder 
{ 
    public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) 
    { 
     // Do something 
     return base.BindModel(controllerContext, bindingContext); 
    } 
} 
相關問題