1

過去24時間で、私はxValに大いに夢中になりました。私はそれを私の個人的なウェブサイトに紹介しました、そしてそれはチャンピオンのように働きます-私はそれを動かすことがどれほど簡単であったか信じられません。ASP.Net MVC、xVal 1.0、およびDataAnnotationsバリデーターを使用しています。

これと同じコードを作業アプリケーションに入れようとすると、異なる動作が見られます。私はおそらく何か違うものがあることを知っているのに十分論理的ですが、それが何であるかはわかりません。

クライアント側の検証を機能させるために、次のように、フィールドにプレフィックス「message」を追加しました。

<%= Html.TextBox("message.Subject", Model.Subject, new { @class = "contact-input required" })%>

等々。私のコントローラーには次のロジックがあります。

[AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Index(Message message)
    {
        try
        { // some code here

これで、自動的に、ModelBinderが実際にオブジェクトにデータを入力します。これは素晴らしい。

問題は、私の作業プロジェクトで同じことをしようとしていることです。クライアント側の検証はうまく機能しますが、ModelBinderがモデルにデータを入力しません。プレフィックスを削除すると問題ないので、プレフィックスの問題であることはわかっています。

スクリプトの唯一の違いは、作業プロジェクトが縮小されたjquery検証ライブラリを使用していることです。

何を探すべきかについてのアイデアはありますか?

4

2 に答える 2

0

xValを機能させるためにプレフィックスは必要ありませんが、ModelBinderが正しく機能するように、入力に同じ名前を付ける必要があります。したがって、ビューにバインドするクラスのプロパティにDataAnnotationsを追加し、xVal htmlヘルパー「ClientSideValidation」を呼び出すだけです。また、xval、スクリプトへの参照を追加する必要があります:jquery、jquery.validate、xval。検証 ...

于 2009-12-02T20:19:08.443 に答える
0

[AcceptVerbs(HttpVerbs.Post)] public ActionResult Index([Bind(Prefix = "Message")]Message message)

xvalには忙しさがありません。これは、asp.netmvcModelBinderに関するものです。

これがお役に立てば幸いです!</ p>

私の英語はプールです(:

于 2010-11-03T09:35:58.123 に答える