2011-07-07 3 views
0

今、私はMVCのAjax実装について学んでいますが、正しく動作させるには問題があります。 2つのコントローラメソッドAjax.ActionLinkに失敗しました

@Ajax.ActionLink("Click here to get a title", "Yo", 
    new AjaxOptions { OnSuccess = "alert(\"YES!\")", OnFailure = "alert(\"WHY?!\")" }) 

をそして、ここにある:ここで私が持っているものだ

public PartialViewResult GetThatTitle() 
    { 
     var titular = new TitleDataEntity { }; 
     titular.TitleName = "Inception!"; 
     titular.PublishDate = DateTime.Now; 
     titular.Id = 2; 

     return PartialView("_testView", titular); 
    } 

    public JsonResult Yo() 
    { 
     var titular = new TitleDataEntity { }; 
     titular.TitleName = "Inception!"; 
     titular.PublishDate = DateTime.Now; 
     titular.Id = 2; 
     if(Request.IsAjaxRequest()) 
     { 
      return Json(titular); 
     } 
     return Json(titular); 
    } 

私は関数を呼び出す「ヨ」、ブラウザが私に与え、「WHYを!」警告ボックス。しかし、GetThatTitleを呼び出すと、それは私に成功の警告を与えます。なぜ私はJsonの結果を返すと失敗するのですか?

答えて

0

あなたは、デフォルトでは無効になっている。このようなGETリクエストJSONを返すできるようにする必要があります。

return Json(titular, JsonRequestBehavior.AllowGet); 

また、私は強くあなたがFireBugを使用することをお勧めします。コンソールにすべてのAJAX要求が表示され、要求と応答が表示されます。あなたはそれを使用している場合は、次のことを見ているだろう:

と、InvalidOperationException:これはGETリクエストで使用されている場合 機密情報が は、サードパーティのWebサイト に開示される可能性があるため、この 要求がブロックされています。 に、GET要求を許可AllowGetに JsonRequestBehaviorを設定する。]

もちろんの正しい軌道に乗ってあなたを入れていることになります。

+0

男、私はばかだと感じます。ヘルプと迅速な返信に感謝します。あなたは揺れる。 – user558594

関連する問題