C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: jquery mobile + ajax


(過去ログ 97 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■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();
        }
    }
}

引用返信 編集キー/
■57685 / inTopicNo.2)  Re[1]: jquery mobile + ajax
□投稿者/ デザパタ (43回)-(2011/03/08(Tue) 15:52:01)
        function onSuccess(context) {
            var data = context.get_data();
            $("#TimeDate").text(data);
            $.mobile.pageLoading(true);
        }

とすることで消せますね。
が、自動で出るのに手動で消すのは通常のシーケンスではない気がします。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -