自定义HtmlHelper在用于强类型视图时失败

时间:2012-04-16 17:09:59

标签: asp.net-mvc-3 razor html-helper

我有以下自定义HtmlHelper签名:

 public static MvcHtmlString MessageBox(this HtmlHelper htmlHelper, string name, object value, object htmlAttributes = null) {...}

我将这个助手用于我的剃刀视图中,如下所示:

@Html.MessageBox("msg", ViewBag.Message)

它可以工作,但是当视图强大时我输入了这个错误:

编译器错误消息:CS1973:'System.Web.Mvc.HtmlHelper'没有名为'MessageBox'的适用方法,但似乎有一个名称的扩展方法。无法动态分派扩展方法。考虑转换动态参数或调用扩展方法而不使用扩展方法语法。

我不需要附加任何模型,所以我想知道如何在不编写新方法的情况下解决这个问题。

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为扩展程序无法确定您对MessageBox(string, Message)的调用实际上是对MessageBox(string, object)的调用。您只需将Message投射到object

@Html.MessageBox("msg", (object) new Message("Hola Mundo"))
相关问题