0
我有一個簽名的操作是這樣的:如何控制自定義模型聯編程序的嘗試值?
public ActionResult Index([ModelBinder(typeof(MyEnumModelBinder))] MyEnum myEnum)
它是這樣實現的:
public class MyEnumModelBinder: IModelBinder
{
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var valueProviderResult = bindingContext.ValueProvider.GetValue("myEnum");
return valueProviderResult == null ?
MyEnum.Default :
valueProviderResult.AttemptedValue.ToMyEnum();
}
}
基本上,我是一個原始值綁定到一個枚舉,非常簡單。工作正常。
但是,請注意,以獲得訪問企圖的價值,我需要使用魔法字符串(「myEnum」)。
有什麼辦法,我可以將其提供給模型綁定,所以去掉魔法字符串?
因爲如果我想在其他地方使用該模型綁定,然後我必須確保我所說的參數「myEnum」,否則會導致運行時錯誤。
我嘗試添加一個構造函數的模型綁定,但沒有什麼地方在那裏我居然實例化。
任何想法?
我affraid沒有討巧的這一點。你真正要問的是如何獲取參數名稱。反射根本不公開這個。 – Polity 2012-02-21 03:09:30