2017-08-12 6 views
-1

ビューロード時にコントローラのJSON値を返すようにしたいのですが、コントローラのコードが荒れています。[httpget]コントローラでjson値を返す方法は?

[HttpGet] 
    public ActionResult Add() 
    { 
     List<selectdata_Result> tbl = new List<selectdata_Result>(); 
     tbl = context.selectdata("", "", "", "").ToList(); 
     string s = JsonConvert.SerializeObject(tbl); 
     return Json(s, JsonRequestBehavior.AllowGet); 
    } 

と私の見解は、私は、アラートの私のJSON値(レスポンス)が私にいくつかのソリューションを.Give取得したい

  $.ajax({ 
       url: '@Url.Action("Add", "Home")', 
       type: 'GET', 
       success: function (response) { 
        alert(response); 
       }, 
       error: function (respons) { 
        alert("error"); 
       } 
      }) 

を下回っています。私のページには、私のJSON値をロードするときに

+0

を使用しますtbl); - そのちょうど 'return Json(tbl、JsonRequestBehavior.AllowGet);'あなたのコレクションをシリアライズします(現在は2回シリアライズしています)。そして、成功コールバックのループを使用してコレクションを繰り返します) –

+0

@StephenMueckeボタンgoto [http]コントローラをクリックしてjsonデータを正しい状態に戻したときの作業です。しかし、[httpget]と同じメソッドでは動作しません –

+0

もちろんです(しかし '[http]'コントローラ - あなたは '[HttpPost]'メソッドを意味しますか?)これは、 'JsonRequestBehavior .AllowGet' –

答えて

0

は、ライン文字列s = JsonConvert.SerializeObject(TBL)を除去して

$.ajax({ 
       url: '@Url.Action("Add", "Home")', 
       type: 'GET', 
       dataType: 'JSON', 
       success: function (response) { 
        alert(response); 
       }, 
       error: function (respons) { 
        alert("error"); 
       } 
      }) 
+0

これは、コードがOPと既にどのように違うのですか( 'dataType: 'JSON'を追加すると違いはありません) –

0

を試しますされます。コントローラから、それは動作します。ここでは、コードは次のとおりです。として

[HttpGet] 
public ActionResult Add() 
{ 
    List<selectdata_Result> tbl = new List<selectdata_Result>(); 
    tbl = context.selectdata("", "", "", "").ToList(); 
    return Json(tbl , JsonRequestBehavior.AllowGet); 
} 

そしてAjax呼び出し:

$.ajax({ 
      url: '@Url.Action("Add", "Home")', 
      type: 'GET', 
      dataType: 'json', 
      success: function (response) { 
       alert(response.data); 
      }, 
      error: function (respons) { 
       alert("error"); 
      } 
     }) 
+0

json値だけが実際のビューを返しませんリターン –

0

私は( `文字列s = JsonConvert.SerializeObjectを削除

[HttpGet] 
    public JsonResult Add() 
    { 
     List<selectdata_Result> tbl = new List<selectdata_Result>(); 
     tbl = context.selectdata("", "", "", "").ToList(); 
     string s = JsonConvert.SerializeObject(tbl); 
     var data = new { result = s } 
     return Json(data); 
    } 

$.ajax({ 
      url: 'dom/controller/action', 
      type: 'GET', 
      success: function (response) { 
       alert(response.data); 
      }, 
      error: function (respons) { 
       alert("error"); 
      } 
     }) 
関連する問題