0

mvc のテキストボックスへの変更イベントで使用しましたが、すべて正常に動作しますが、ビュー内のコントローラーによる例外スローを処理できません。

**VIEW:**



 $("#txtToloc").change( function (event) {

        var toloc= $('#txtToloc').val();
                    var mn = <%= new JavaScriptSerializer().Serialize(ViewData["MODELNUMBER"])%>;
                    var fm = <%= new JavaScriptSerializer().Serialize(ViewData["lblocation"]) %>;
                    var it = <%= new JavaScriptSerializer().Serialize(ViewData["lbinvtype"])%>;
                    var whid = "14";
                    debugger;

            $.ajax({
                url: '<%: Url.Action("GetPartialGraph")%>',
                data: { 'Tolocation' :mn, 'Frmlocation' :fm, 'moNo' :it, 'whid' : whid },
                type: "post",
                cache: false,
                dataType: "html",
                 success: function(result) {
                 alert('yeap');
                  },
       error: function(xhr, status, error) {
                  alert(‘loss’);
                }
            });
        });
        });

ビューから、コントローラーでアクションメソッドを呼び出しています。

    **CONTROLLER.**



  public ActionResult GetPartialGraph(string Tolocation, string Frmlocation, string moNo, string whid)
            {

                string isvalid = "0";
                if (Frmlocation.ToUpper().Trim() == Tolocation.ToUpper().Trim())
                {
                }
                else
                {
                    try
                    {                    
                        ut.Setlocation(Tolocation,Frmlocation,moNo,whid);
                    }

                    catch (iDB2Exception ex)
                    {
                       /* in catch depending upon certain condition I want through diff exception */

                           return View(isvalid);  
                     }


 Everything works fine. But I am unable to bring exception back to view. To show proper message to client. From 

error: function(xhr, status, error) {
              alert(‘loss’);
            }

別の関数を呼び出し、戻り値に応じてユーザーにメッセージを表示します。ビューに表示するためにコントローラーから例外を返すことができません。

4

2 に答える 2

0

エラー関数は、HTTP ステータス コードが 200 と異なる場合にのみ実行されます。投稿したコードでは、まだ有効なビューを返しているため、エラー関数は実行されません。

コントローラーから JSON オブジェクトを返す可能性があります。JSON オブジェクトで「成功」フラグを設定してみて、「成功」メソッドでこれを検証します。

             function(result) {
                 if (result.success)
                     alert('yeap');
              }
于 2013-07-15T12:09:21.560 に答える