1
我一直在尋找自定義模型綁定器作爲一種全局截取和修改我的視圖模型上的特定字符串屬性的方法。定製模型活頁夾可以在兩個方向上工作嗎?
我可以覆蓋SetProperty並操作正在張貼的值,但是反過來呢?
例如,我可能想修剪()所有從我的模型中出來的字符串,這是可能的模型粘合劑或我錯過了什麼?我已經看過重寫GetPropertyValue,但是當視圖加載時這不會觸發。
任何指針,將不勝感激。
我一直在尋找自定義模型綁定器作爲一種全局截取和修改我的視圖模型上的特定字符串屬性的方法。定製模型活頁夾可以在兩個方向上工作嗎?
我可以覆蓋SetProperty並操作正在張貼的值,但是反過來呢?
例如,我可能想修剪()所有從我的模型中出來的字符串,這是可能的模型粘合劑或我錯過了什麼?我已經看過重寫GetPropertyValue,但是當視圖加載時這不會觸發。
任何指針,將不勝感激。
不,模型活頁夾只能在一個方向上工作。
您可以創建自己的ActionResult實例,例如通過擴展ViewResult或PartialViewResult。
或者你可以實現ActionFilterAttribute來修剪字符串。
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
var model = filterContext.Controller.ViewData.Model;
...
}
或者你可以做蠻力
public class MyModel
{
private string _myProp
public string MyProp
{
set { _myProp = value.Trim(); }
get { return _myProp; }
}
}
...但你不能用模型綁定綁定模型從控制器到視圖去。
謝謝,試圖實現ActionFilterAttribute,但我如何從ActionExecutingContext filterContext獲得對模型的訪問? – bigtv 2012-03-19 12:58:28
查看更新的答案。您的模型將被輸入爲'object',所以您需要反射API修剪其中的字符串屬性。 – danludwig 2012-03-19 13:05:45