このAjaxリクエストが正しく起動されない理由はわかりません。簡単にするために、私はthis tutorialを使ってAjaxリクエストを実装しようとしています。しかし、私はコントローラーにその要求がそうであると認識させることはできません。私はAjax.ActionLinkを更新するdiv内に配置しようとしました(ここではその外にあります)。asp.net MVC Ajaxリクエストが正しく起動しない
Response.Writeを使用してDatetimeを配置すると、Div内のものが更新され、ターゲットdiv外のものは期待通りに更新されません。私はあまりにもMS Ajaxライブラリーの仕組みに精通しているわけではありませんが、表面上はページの右側のセクションを更新しているようですが、コントローラーは要求タイプを認識せず、誤った情報を出力します。
...
<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-1.2.6.min.js" type="text/javascript"></script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<div class="chart" id="divChart">
<% Html.RenderPartial("GraphView", Model); %>
<br />
<% Response.Write(DateTime.Now); %>
<br />
</div>
<%= Ajax.ActionLink("no parameters", "MyWorkouts", new AjaxOptions{ UpdateTargetId = "divChart"}) %>
<%= Ajax.ActionLink("id parameter", "MyWorkouts", new {chtype=1},new AjaxOptions { UpdateTargetId = "divChart", OnBegin = "beginContactList", OnSuccess = "successContactList", OnFailure = "failureContactList" })%>
<%= Ajax.ActionLink("all parameters", "MyWorkouts", new {chtype=2, range=ViewData["daterangevalue"]},new AjaxOptions { UpdateTargetId = "divChart", OnBegin = "beginContactList", OnSuccess = "successContactList", OnFailure = "failureContactList" })%>
<br />
<% Response.Write(DateTime.Now); %>
<h2>
...
そして、私のActionResultがそうのように見える...
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult MyWorkouts(int? chtype, int? range) {
int dateRange = 3;
// do some stuff here - left out for readability
if (Request.IsAjaxRequest()) {
if (range != null) {
dateRange = (int)range;
}
}
//do some other stuff...
if (Request.IsAjaxRequest()) {
return PartialView("GraphView", workouts);
} else {
return View(workouts);
}
}
(これは私はそれが考え出したら、それを実装するだけのテストページですとしてすべてはかなりデフォルトです)。その結果、私は目標とされたdivの内部を完全に見ることができます。
私は自分の開発マシンにRC1をインストールしていると思います(私はRC2にアップデートしていません)。また、RedirectToActionやリダイレクトタイプの動作は、省略されたコードではまったく発生せず、ちょうどいくつかのサービスレイヤ呼び出しがあります。 – MunkiPhD