2012-04-20 18 views
1

なぜ、Ajaxが起きているのかわかりません。 ここIndex.cshtmlでの私のHello Worldコードです:ここでMVC3 AJAX ActionLink "Hello World"うまく動作しません

@ViewBag.Title = "Home Page" 
<h2>@ViewBag.Message</h2> 
<p>Hello there! Click Update to see the current time!</p> 
<div id="MyAjaxDiv"></div> 
@Html.ActionLink("Update", "GetTime", new {id="MyAjaxLink"}) 

はHomeController.csある、それは下にGetTime()関数を呼び出すので、それはちょうど、新しい空白のページに私をリンクし、ディスプレイ「NA」コード:

namespace MvcApplication1.Controllers { 
    public class HomeController : Controller { 
     public ActionResult Index() { 
      ViewBag.Message = "Welcome to ASP.NET MVC!"; 
      return View(); 
     } 
     public string GetTime() { 
      if (Request.IsAjaxRequest()) 
       return DateTime.Now.ToString("hh:mm:ss tt"); 
      return "NA"; 
     } 
    } 
} 

私は、このリンクをたどっ: Ajax.ActionLink not working, Response.IsAjaxRequest() is always false

しかし、何の違い-with-またはその記事によって提案として分離myscripts.jsファイルにAJAXifyingコードを-without-はありません。それはまだ "NA"の空白のページにリンクしています。 これは

$(function() { 
    $('#MyAjaxLink').click(function() { 
     $('#MyAjaxDiv').load(this.href); 
     return false; 
    }); 
}); 

_layout.cshtml

<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Content/myscripts.js")" type="text/javascript"></script> 

ファイル「の内容/ myscripts.js」のヘッダで宣言されたコードです助けてください!

答えて

0

あなたのセレクタに問題があるように見えます。あなたのJavascriptはid = "mylink"をターゲットにしていますが、リンクの名前は "MyAjaxLink"です。これにJavascriptを変更してみてください:

$(function() { 
    $('#MyAjaxLink').click(function() { 
     $('#MyAjaxDiv').load(this.href); 
     return false; 
    }); 
}); 
+0

申し訳ありませんがmasterviewていることを確認してください。私はちょうどそれを更新しました。それは他の投稿からコピーされました。私は実際に自分のコードで正しいものを使用しました。 MyAjaxLinkとMyAjaxDivはどちらですか?また、スクリプトの有無にかかわらず、空白のページに私を連れて行くのと同じことをするようです。 – Tom

+0

Gotcha ...あなたはまた "Html.ActionLink"を持っていますか、 "Ajax.ActionLink"と書いていますか? – McGarnagle

+0

D:OMG!はい!うーん。 2番目の質問...今は動作しますが、時間は初めて更新されるだけです。それから、もはや爽やかではありません...(編集:これをGetTime()の前に追加... [OutputCache(NoStore = true、VaryByParam = ""、Duration = 0)] – Tom

0

あなたajaxifyコード、あなたもあなたのビューのいずれかに含まれる2つのスクリプトを以下または

MicrosoftAjax.js 
    MicrosoftMvcAjax.js 
関連する問題