使用jQuery Mobile插入数据库后显示对话框或弹出窗口

时间:2014-09-11 00:53:49

标签: jquery database mobile dialog webmatrix

我正在使用WebMatrix和jQuery Mobile开发一个涉及一些数据库操作的简单移动网页。其中一个要求是显示类似警报的对话框,以通知用户操作如何进行。我做过一些研究,但在某些数据库操作方面,我找不到可行的解决方案。以下是我能做的最好的事情,但似乎有些问题。

  1. 数据插入成功,但它总是在catch块中重定向,忽略try块中的重定向。

  2. 这绝对不是一个好习惯。有人能指点我更有效地实施这个目标吗?

  3. 提前致谢。

    Default.cshtml

    @{
        Layout = "~/_Layout.cshtml";
        Page.Name = "Test Adding Records";
        if (IsPost)
        {
            string strFirst, strSecond;
            strFirst = Request.Form["first"];
            strSecond = Request.Form["second"];
    
            var database = Database.Open("TestDB");
            string strSql = "INSERT INTO TestTable " +
                "(firstCol, secondCol) " +
                "VALUES(@0, @1);";
            try{
                database.Execute(strSql, strFirst, strSecond);
                Response.Redirect("~/Msg.cshtml?msg=Successfully");
            }
            catch(Exception ex){
                Response.Redirect("~/Msg.cshtml?msg=failed");
            }
        }
    }
    
    <div data-role="page">
        <div data-role="header">
            <h1>Add a Record</h1>
        </div>
        <div data-role="content">
            <form method="post" action="">
                <div data-role="fieldcontain">
                    <label for="first">First Column:</label>
                    <input type="text" name="first" id="first" value="@Request.Form["first"]" />
                </div>
                <div data-role="fieldcontain">
                    <label for="second">Second Column:</label>
                    <input type="text" name="second" id="second" value="@Request.Form["second"]" />
                </div>
                <div data-role="fieldcontain">
                    <input type="submit" value="Add Record" />
                </div>
            </form>
        </div>
    </div>
    

    Msg.cshtml

    @{
        string message = Request.QueryString["msg"];
        string previousUrl = Request.UrlReferrer.ToString();
    }
    
    <!DOCTYPE html>
    
    <html lang="en">
        <head>
            <meta charset="utf-8" />
            <title></title>
            <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css" />
            <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
            <script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>   
        </head>
        <body>
            <script type="text/javascript">
                alert('@message');
                window.location.replace('@previousUrl');
            </script>
        </body>
    </html>
    

1 个答案:

答案 0 :(得分:0)

尝试这个小修改

    try{
        database.Execute(strSql, strFirst, strSecond);
    }
    catch(Exception ex){
        Response.Redirect("~/Msg.cshtml?msg=failed");
    }
    Response.Redirect("~/Msg.cshtml?msg=Successfully");