8

私は次のように機能するビューを持っています:

<%= Html.TextBoxFor(m => m.FirstName, new { @class = "required_field_light" }) %>
<%= Html.ValidationMessageFor(m => m.FirstName) %>

ただし、ValidationMessageFor()を次のようにValidateFor()に変更すると、次のようになります。

<%= Html.ValidateFor(m => m.FirstName) %>

このコンパイルエラーが発生します:

"The best overloaded method match for 'System.IO.TextWriter.Write(char)' has some invalid arguments"
"Argument '1': cannot convert from 'void' to 'char'"

どこかで何かが足りないと思いますが、それが何なのかわかりません。他の誰かがこの問題に遭遇して解決策を見つけましたか、または誰かがこれを解決する方法を知っていますか?

4

2 に答える 2

13

ValidateFor()はvoidを返すため、次のように呼び出します。

<% Html.ValidateFor(m => m.FirstName); %>

(等号がないことに注意してください。セミコロンが追加されています。)

于 2010-06-15T17:04:17.110 に答える
6

Razorを使用している方は、次の方法でも同じことができます。

@{ Html.ValidateFor(x => x.FirstName); }

通常の代わりに

@Html.ValidateFor(x => x.FirstName)

繰り返しになりますが、Leviが述べたように、ほとんどのメソッドとは異なり、がValidateFor返されるためです。そして、その点で、あなたが何をしているのかについての手がかりがないので、あなたが使おうとしているのなら、私はあなたが実際に使いたいと思うでしょう:voidMvcHtmlStringHtml.Html.ValidateFor

@Html.ValidationMessageFor(x => x.FirstName)
于 2013-05-08T15:29:55.490 に答える