无法在Textbox中动态分派扩展方法

Tec*_*Guy 4 c# asp.net-mvc entity-framework asp.net-mvc-5

在这里我将从ViewBag中获取一个值.但是出现以下错误.

特定错误消息是

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

控制器中的ViewBag

 ViewBag.Vat = tx.GetVatDetails().FirstOrDefault().Percentage; // result is 15.0 
Run Code Online (Sandbox Code Playgroud)

在我看来

 @Html.TextBox("vat",ViewBag.Vat); // in here that error occured
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

Kar*_*sla 12

这将有效: -

@Html.TextBox("vat",(float)ViewBag.Vat);  //Type cast `ViewBag` to float here
Run Code Online (Sandbox Code Playgroud)

该铸造Viewbag数据来float工作,因为扩展方法不能动态调度和Viewbag是一个dynamic object,这就是为什么我们必须首先强制转换成合适的类型,是float在这里.