@ Ajax.BeginForm()でasp.net mvc 3 jqueryまたはajax問題

私は単純なCMSプロジェクトに取り組んでいます。私は壁にぶつかりました。そして数時間後、それを爆破した。

何らかの理由で、 @ Ajax.BeginForm 内のボタンがポストバックをアクティブ化していませんでした。完全なポストバックもajaxもありません。私はスクリプトを参照し、jQeryをデバッグしようとしましたが、コントローラ、ビュー、リファレンス、モデルのすべての文字を無駄に調べました。 エラーや例外は発生しませんでした。

コントローラアクション:

[HttpPost]
public ActionResult Delete(int ID,int page=1)
{
  //some code...
  //...work, work, work...
}

セグメントを表示する:

@using (Ajax.BeginForm("Delete", "Client", new { page = Model.CurrentPageIndex }, ao))
{
    @Html.Hidden("clientID", item.ClientID)
    <input type="submit" value="Briši" name="brisi" />
}

エラー:

    

パラメータ辞書に、 'Info3CRM.WebUI.Controllers'の 'System.Web.Mvc.ActionResult Delete(Int32、Int32)'メソッドのnullable型 'System.Int32'のパラメータ 'ID'のnullエントリが含まれています。 ClientController '。オプションのパラメータは、参照型、null可能型、またはオプションのパラメータとして宣言する必要があります。     パラメータ名:パラメータ

  

最後に、jQueryとAjaxを無効にし、通常のポストバックを行うことに決めました。その後、例外がスローされました。私は必要なすべてのパラメータを必要とせずにコントローラ内のアクションを呼び出そうとしていました。

私の質問はすべてです:どのようにjQueryとajaxが有効になっている場合、そのような例外をキャッチする?

1
追加された
ビュー: 4

2 答え

クライアント側のデバッグツールでこのエラーが発生することがあります。

たとえば、 Fiddler では、サーバーから返されたレスポンスが表示され、FiddlerのWebViewタブを使用してHTMLレスポンスを参照してください。この場合のHTML応答では、ASP.NET黄色のエラー画面が表示されます。

Fiddlerに加えて、IE、Chrome、Operaに組み込まれているブラウザデバッグツールを使用することもできます。また、 Firebug をダウンロードすることもできます。 FireFoxのために。各ツールには、すべてのajaxリクエストとその回答を表示するネットワークタブがあります。

1
追加された
問題ではありません - 私は助けてうれしいです。 ;)
追加された 著者 nikmd23,
ありがとうございました!!!信じられないかもしれませんが、私はFirebugを何年も使っていますが、主にCSSを修正してJSをデバッグしようとしています。
追加された 著者 Zaak,

あなたの問題はPOSTingされているアクションが、 ID という名前のパラメータを見つけようとしているのに対し、そのようなパラメータはPOSTされていないということです。隠し入力の名前をパラメータの名前と一致するように変更すると、すべてうまく動作するはずです。

だから、変更

@Html.Hidden("clientID", item.ClientID)

@Html.Hidden("ID", item.ClientID)
0
追加された
私は今それを知っているが、私の問題はこれを理解することであった。例外が投げられなかったので、私は問題を見つけることができませんでした。オリジナルの問題では、タイプミスが i 対 だったことは明らかです。
追加された 著者 Zaak,