1

理由はわかりませんが、Ajaxは発生していません。以下のGetTime()関数を呼び出すため、新しい空白のページにリンクして「NA」と表示されます。Index.cshtmlにあるHelloWorldコードは次のとおりです。

@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コードは次のとおりです。

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が機能せず、Response.IsAjaxRequest()は常にfalseです

ただし、その投稿で示唆されているように、分離されたmyscripts.jsファイルのAJAXifyingコードの有無に違いはありません。それでも、「NA」のある空白のページにリンクしています。これは、_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>

ファイル「contents/myscripts.js」</p>

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

助けてください !

4

2 に答える 2

0

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

$(function() { 
    $('#MyAjaxLink').click(function() { 
        $('#MyAjaxDiv').load(this.href); 
        return false; 
    }); 
});
于 2012-04-20T08:00:59.267 に答える
0

コードをajaxifyするときは、ビューまたはマスタービューのいずれかに次の2つのスクリプトも含まれていることを確認してください

  MicrosoftAjax.js
  MicrosoftMvcAjax.js 
于 2012-04-20T09:15:58.873 に答える