我正在使用WebMatrix和jQuery Mobile开发一个涉及一些数据库操作的简单移动网页。其中一个要求是显示类似警报的对话框,以通知用户操作如何进行。我做过一些研究,但在某些数据库操作方面,我找不到可行的解决方案。以下是我能做的最好的事情,但似乎有些问题。
数据插入成功,但它总是在catch块中重定向,忽略try块中的重定向。
这绝对不是一个好习惯。有人能指点我更有效地实施这个目标吗?
提前致谢。
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>
答案 0 :(得分:0)
尝试这个小修改
try{
database.Execute(strSql, strFirst, strSecond);
}
catch(Exception ex){
Response.Redirect("~/Msg.cshtml?msg=failed");
}
Response.Redirect("~/Msg.cshtml?msg=Successfully");