■57684 / inTopicNo.1) |
jquery mobile + ajax |
□投稿者/ デザパタ (42回)-(2011/03/08(Tue) 15:35:20)
|
分類:[ASP.NET (C#)]
環境:[Windows Vista, Visual Studio 2010 Pro]
ASP.NET MVC + jquery mobileでajax通信が行いたいんですが、jquery mobileが期待通りに動きません。
具体的には通信が終わってもjquery mobileが自動で出すLoadingアニメーションが消えません。
これがjquery mobileのバグなのか、私の実装に何か問題があるのかわかる方おられませんか?
以下は再現コード
※プロジェクトはASP.NET MVC 2 Web アプリケーションで作成しています。
※更新ボタンを押すとajaxで現在日時を取得し、再描画しています。
--------------------------------[Site.Master]---------------------------------
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.5.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.js"></script>
<script type="text/javascript" src="<%= ResolveUrl("~/Scripts/MicrosoftAjax.js") %>"></script>
<script type="text/javascript" src="<%= ResolveUrl("~/Scripts/MicrosoftMvcAjax.js") %>"></script>
<asp:ContentPlaceHolder ID="ScriptContent" runat="server" />
</head>
<body>
<div class="page">
<div id="header">
<div id="title">
<h1>マイ MVC アプリケーション</h1>
</div>
<div id="logindisplay">
<% Html.RenderPartial("LogOnUserControl"); %>
</div>
<div id="menucontainer">
<ul id="menu">
<li><%: Html.ActionLink("ホーム", "Index", "Home")%></li>
<li><%: Html.ActionLink("このサイトについて", "About", "Home")%></li>
</ul>
</div>
</div>
<div id="main">
<asp:ContentPlaceHolder ID="MainContent" runat="server" />
<div id="footer">
</div>
</div>
</div>
</body>
</html>
--------------------------------[index.aspx]--------------------------------
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
ホーム ページ
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="ScriptContent" runat="server">
<script type="text/javascript">
function onSuccess(context) {
var data = context.get_data();
$("#TimeDate").text(data);
}
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<div data-role="page" data-theme="b">
<% using (Ajax.BeginForm("GetDateTime",
new AjaxOptions { OnSuccess = "onSuccess " }))
{ %>
<div data-role="fieldcontain">
<input type="submit" data-icon="refresh" value="更新" />
</div>
<% } %>
<p>日時:<span id="TimeDate"></span></p>
</div>
</asp:Content>
--------------------------------[HomeController.cs]--------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MvcApplication6.Controllers
{
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
ViewData["Message"] = "ASP.NET MVC へようこそ";
return View();
}
public ActionResult About()
{
return View();
}
public ActionResult GetDateTime()
{
if (Request.IsAjaxRequest())
{
return Content(DateTime.Now.ToString());
}
return new EmptyResult();
}
}
}
|
|