2016-04-24 4 views
0

なぜ解析エラーが出るのか分かりません。私は、私のajaxでdataTypeを動的に設定しています.jsonをdataTypeとして呼び出すと、解析エラーが発生します。私のajaxの結果にparseerrorを取得する返信

MVCコントローラのアクション

public ProductViewModel UpdateProduct(ProductViewModel product) 
    { 
     var productContract = Mapper.Map<ProductViewModel, ProductContract>(product); 
     var productReturned = _productService.UpdateProduct(productContract); 

     if (productReturned.HasValue) 
     { 
      return Mapper.Map<ProductContract, ProductViewModel>(productReturned.Value); 
     } 
     return null; 
    } 

Ajax呼び出し

var ajaxCall = function (destinationUrl, dataToPost, ajaxDataType, element, callbackFunction) { 
    $.ajax({ 
     url: destinationUrl, 
     data: dataToPost, 
     contentType: "application/json", 
     dataType: ajaxDataType, 
     success: function (data) { 
      callbackFunction(data, element); 
     }, 
     error: function (req, status, errorObj) { 
      console.log(status); 
     } 
    }); 
} 

callbackFunction

これは、Ajaxの成功上で動作する方法であり、私のデータベースが正常に更新されしかし、私はtが必要ですデータが返されてUIが更新されました。私がしようと、私はコントローラのアクションとASP.NET MVCアプリケーションの場合には、それを考え出した

function updateProductRow(data, element) { 
    console.log(data.d[0]); 
} 
+0

デベロッパーツールで返品データを確認しましたか? –

+0

@ KarthikMR thatsなぜ私は返されたデータをロギングしています、そのparseerror –

+1

つまり、有効なjsonを返さないということです。戻りnullは間違いなくそれを引き起こします。私は他のリターンケースのコードに慣れていない、それはjsonを生成しているのだろうか?それはそれのようには見えません – DelightedD0D

答えて

0

datadata.ddata.d[0]のようにそれを取得している、私は動詞を受け入れるように私の方法上記の属性を持っていましたそれはポストになるでしょう。また、戻り値の型をJSON結果に変換することもできます。

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult UpdateProduct(ProductViewModel product) 
    { 
     var productContract = Mapper.Map<ProductViewModel, ProductContract>(product); 
     var productReturned = _productService.UpdateProduct(productContract); 

     if (productReturned.HasValue) 
     { 
      return Json(Mapper.Map<ProductContract, ProductViewModel>(productReturned.Value)); 
     } 
     return null; 
    } 
+0

'return null;'があるところでは、nullの代わりに意味のあるエラーメッセージを含む有効なJSON応答を返すことを検討するかもしれません。現在、 'return null;を打つと、あなたが尋ねたのと同じ構文解析エラーが発生します。意味のあるエラーメッセージを返した方がより優雅で、より良いUX全体を提供するのに役立ちます。ちょうど私の2セント: – DelightedD0D

+0

@ DelightedD0Dありがとうございました!...私は{description: "エラーが発生しました"}のような何かを返す予定でした..あなたは電子メールを持っていますか? –

関連する問題