.net MVC Html.TextArea过载问题

.net MVC Html.TextArea过载问题,.net,asp.net-mvc,.net,Asp.net Mvc,我在MVC视图中有一个表单,它包含许多文本框、下拉列表和文本区域。我正在使用HTML助手创建这些控件,包括在适当的地方用视图数据预填充它们,以及通过htmlAttributes参数应用样式 这在TextBox控件和DropDownList等方面工作正常,但是当我将htmlAttributes添加到TextArea时,它停止工作,声称最佳重载方法具有一些无效参数,失败的代码是: Html.TextArea("Description", ViewData["Description_Current"]

我在MVC视图中有一个表单,它包含许多文本框、下拉列表和文本区域。我正在使用HTML助手创建这些控件,包括在适当的地方用视图数据预填充它们,以及通过htmlAttributes参数应用样式

这在TextBox控件和DropDownList等方面工作正常,但是当我将htmlAttributes添加到TextArea时,它停止工作,声称最佳重载方法具有一些无效参数,失败的代码是:

Html.TextArea("Description", ViewData["Description_Current"], new { @class = "DataEntryStd_TextArea" })
由此产生的错误是:

“System.Web.Mvc.HtmlHelper”不包含“TextArea”的定义 而最好的扩展方法是重载 'System.Web.Mvc.Html.TextAreaExtensions.TextArea(System.Web.Mvc.HtmlHelper, 字符串、字符串、对象“”具有一些无效参数

为了进行比较,工作正常的TextBox调用包括:

Html.TextBox("TelephoneNumberAlternate", ViewData["TelephoneNumberAlternate"], new { @class = "DataEntryStd_TextBox" })
我尝试显式引用TextAreaExtensions.TextArea并包含HtmlHelper参数,但是这没有什么区别

对于info,TextArea调用在没有htmlAttributes参数的情况下可以正常工作。此外,我还尝试为class属性指定一个名称/值字典,但是遇到了完全相同的问题


知道我做错了什么吗?

这些错误消息总是让我感到不安,因为它们没有告诉您哪一个参数不匹配

你试过这个吗

Html.TextArea("Description", ViewData["Description_Current"].ToString(), new { @class = "DataEntryStd_TextArea" })

我询问的原因是
ViewData[“Description\u Current”]
的类型是
Object
,并且签名
Html.TextArea(String,Object)
有一个重载,尽管本例中的对象表示Html属性。这可能就是为什么编译器在将html属性作为第三个参数添加之前不会抱怨的原因-在此之前,第二个参数允许是
对象
,但一旦添加第三个参数,第二个参数必须是
字符串

,您需要强制转换ViewData[“Description\u Current”]将字符串作为方法需要的签名(字符串、字符串、对象)而不是(字符串、对象、对象)。文本框之所以有效,是因为有一个使用html属性(字符串、对象、对象)的签名



MSDN上提供了和的文档。

很棒的工作伙伴。我喜欢这样一个事实:社区如此之快,以至于我无法独自解决的问题不会对我的生活产生特别的影响!谢谢!:)
<%= Html.TextArea( "Name",
                   (string)ViewData["Value"],
                   new { @class = "klass" } ) %>