【问题标题】:Extension methods cannot be dynamically dispatched in Textbox扩展方法不能在文本框中动态调度
【发布时间】:2014-10-17 16:26:12
【问题描述】:

这里要从 ViewBag 中取值。但是发生了下面的错误。

具体的错误信息是

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

控制器中的ViewBag

 ViewBag.Vat = tx.GetVatDetails().FirstOrDefault().Percentage; // result is 15.0 

在我看来

 @Html.TextBox("vat",ViewBag.Vat); // in here that error occured

我该如何解决?

【问题讨论】:

    标签: c# asp.net-mvc entity-framework asp.net-mvc-5


    【解决方案1】:

    这将起作用:-

    @Html.TextBox("vat",(float)ViewBag.Vat);  //Type cast `ViewBag` to float here
    

    Viewbag 数据转换为float 是可行的,因为扩展方法无法动态分派,而Viewbagdynamic object,这就是为什么我们必须首先将其转换为适当的类型,即@987654327 @这里。

    【讨论】:

    • 是的。这是一个浮点值。我使用 (float)ViewBag.Vat Solved。谢谢
    • 你能解释一下为什么我需要在这里投吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-11
    • 1970-01-01
    • 2011-12-09
    相关资源
    最近更新 更多