扩展方法在Textbox中无法动态调度。

4

我将会从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

如何解决这个问题?
1个回答

13

这将有效:

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

Viewbag 数据强制转换为 float 是可行的,因为扩展方法无法进行动态分派,并且 Viewbag 是一个 dynamic 对象,这就是为什么我们必须先将其类型转换为适当的类型,即此处的float


是的。这是一个浮点数值。我使用(float)ViewBag.Vat 解决了。谢谢。 - TechGuy
1
请问您能解释一下为什么我需要在这里进行类型转换吗? - TechGuy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接