2012-02-16 10 views
2

私はAjaxはMVCとASP.Net を提出行っております:Ajaxコールからのステータス500応答でどのフィールドにエラーが発生しているかを確認するにはどうすればよいですか?

<form method="post" id="dialogForm" data-ajax-update="#update-message" 
data-ajax-success="menuDialogSuccess('Create Complete','Create')" 
data-ajax-mode="replace" data-ajax-method="POST" 
data-ajax="true" class="ui-widget dialog-admin" 
action="/Administration/Menus/Create" novalidate="novalidate"> 

これは、次のと、ステータス500のウェブページで応答:

に変換され

@using (Ajax.BeginForm(
     action, 
     "References", 
     null, 
     new AjaxOptions 
     { 
      UpdateTargetId = "update-message", 
      InsertionMode = InsertionMode.Replace, 
      HttpMethod = "POST", 
      OnSuccess = success, 
      OnFailure = "ajaxOnFailure" 
     }, new { @id = "dialogForm", @class = "ui-widget dialog-admin" })) 

Unable to cast object of type 'System.Int32' to type 'System.String' 

これは、これが参照するフィールドがわかりません。私はこれを追跡するためにいくつかの場所がありますか?

答えて

5

私は、問題は、このによるものであることが判明:

[StringLength(3, ErrorMessage="Order must be 3 characters")] 
    [Range(0, 99, ErrorMessage = "{0} must be between {1} and {2}")] 
    [DisplayName("Order")] 
    public int Order { get; set; } 

コードが文字列でない何かの長さを取得しようとしています。

1

それはあなたがそれを文字列"dialogForm"を を送信している間、あなたのアクションは、タイプintIDパラメータを期待しているコードから見えます。アクションパラメータIDstringに変更します。

+0

ID/dialogIDは多くの場所で使用されている一般的なコードなので、これはこれではないと思います。コードは、MVC#によって生成されるようです。私はちょうどどこを理解していない。 –

1

私はあなたがエラーの場所を追跡するためにfirebugアドオンを使うべきだと思います。

+0

これはMVCを使用しています。私は、エラーがいくつかのMVCコードから来ていると信じていますが、私はどこにいるのかわかりません。火かき棒の使い方がわからないエラーは、c#MVCコードによって生成されています。 –

関連する問題