我正在尝试创建一些HtmlHelper扩展,并遇到了一些障碍,试图让我的扩展方法使用ViewData.ModelState定义的尝试值。 HtmlHelper.GetModelAttemptedValue()
方法标记为内部,不适用于我的扩展方法。在MVC中有一个简单的替代方案吗?
答案 0 :(得分:2)
我不确定你要去的地方。你不能只使用HtmlHelper可用的ViewData.ModelState并自己调用TryGetValue吗?我知道它不是DRY,但它似乎比通过反射在助手中调用三行方法更容易。
public static string MyHelper( this HtmlHelper helper, string modelKey)
{
ModelState modelState;
if (helper.ViewData.ModelState.TryGetValue( modelKey, out modelState))
{
string attemptedValue = modelState.AttemptedValue;
}
}