C# 自定义ModelBinder中的Html-Helper

C# 自定义ModelBinder中的Html-Helper,c#,asp.net-mvc-2,C#,Asp.net Mvc 2,有没有办法在自定义模型绑定器中获取Html助手的实例 例如: 我如何获得所需的两个参数 Thx适用于任何TIPP! sl3dg3即使你可以,它也是错误的 HtmlHelper是一种视图工具,它在视图中渲染模型,而活页夹则相反 模型绑定器在视图执行之前运行,因此您还没有ViewContext,它允许您获得HtmlHelper。你可能会伪造这个背景,但我不建议你这么做。您可以有一个UrlHelper。我的意图实际上是使用类似Html.Display(“MyProperty”)的东西,以便轻松访问Di

有没有办法在自定义模型绑定器中获取Html助手的实例

例如:

我如何获得所需的两个参数

Thx适用于任何TIPP!
sl3dg3

即使你可以,它也是错误的


HtmlHelper是一种视图工具,它在视图中渲染模型,而活页夹则相反

模型绑定器在视图执行之前运行,因此您还没有
ViewContext
,它允许您获得
HtmlHelper
。你可能会伪造这个背景,但我不建议你这么做。您可以有一个
UrlHelper

我的意图实际上是使用类似Html.Display(“MyProperty”)的东西,以便轻松访问DisplayAttribute。还有其他简单的方法吗?
ControllerContext.ParentActionViewContext
指的是什么?这是一个视图上下文,但似乎不是正确的上下文。@sl3dg3,您可以使用元数据:
var metadata=ModelMetadataProviders.Current.GetMetadataForProperty(null,typeof(YourModel),“MyProperty”)。然后
metadata.DisplayName
将为您提供所需内容。@Matt Greer,
ParentActionViewContext
仅在子操作(使用
Html.Action
Html.RenderAction
帮助程序调用的操作)中分配,在正常调用的操作中为空(直接调用的操作,如
/home/index
)。@Darin Dimitrow:Thx!我没有想到
ModelMetaData
:)
public class TranslationModelBinder : DefaultModelBinder
{
    public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
    {
       // HtmlHelper helper = new HtmlHelper(?,?);
       object model = base.BindModel(controllerContext, bindingContext);
    }
}