不能在文本框中动态分派扩展方法

本文关键字:分派 扩展 方法 动态 文本 不能 | 更新日期: 2023-09-27 18:19:12

这里我将从ViewBag中获取一个值。但是下面出现错误。

Specific Error Message is

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

ViewBag in Controller

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

In my View

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

如何解决这个问题?

不能在文本框中动态分派扩展方法

可以:-

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

Viewbag数据转换为float工作,因为扩展方法不能动态调度,Viewbagdynamic object,这就是为什么我们必须首先将其类型转换为适当的类型,即这里的float