【问题标题】:Custom HtmlHelper fails when used into strong typed views自定义 HtmlHelper 在用于强类型视图时失败
【发布时间】:2012-04-16 17:09:58
【问题描述】:

我有以下自定义 HtmlHelper 签名:

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

我在我的 razor 视图中使用这个助手,如下所示:

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

它可以工作,但是当视图是强类型时,我得到了这个错误:

编译器错误消息:CS1973:“System.Web.Mvc.HtmlHelper”没有名为“MessageBox”的适用方法,但似乎具有该名称的扩展方法。扩展方法不能动态调度。考虑强制转换动态参数或在没有扩展方法语法的情况下调用扩展方法。

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

谢谢!

【问题讨论】:

  • 你在执行之前编译过项目吗?

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


【解决方案1】:

我相信扩展方法无法确定您对MessageBox(string, Message) 的调用实际上是对MessageBox(string, object) 的调用。您只需要将您的Message 转换为object

@Html.MessageBox("msg", (object) new Message("Hola Mundo"))

【讨论】:

    猜你喜欢
    • 2010-11-25
    • 1970-01-01
    • 1970-01-01
    • 2011-01-03
    • 1970-01-01
    • 2020-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多