.net AJAX jquery

.net的路由不能像ror的路由那樣精確到Action,不過可以通過jquery的ajax方法多傳遞一個Key/value值,再到Page_Load方法中判斷一下此value的值,再執行相應的方法。
當然也可以用ASP.NET AJAX的控件。 不過據說不怎麼好

下面是個判斷用戶名是否存在的簡單代碼
[b]C#代碼:[/b]
protected void Page_Load(object sender, EventArgs e)
{
//判斷是否有名爲"Action"的key
if (!Request.Params.AllKeys.Contains("Action"))
{

}
//判斷keyvalue的值是不是"get_msg"
else if(Request.Params.GetValues("Action").FirstOrDefault()=="get_msg")
{
test();
}
}

protected void test()
{
//獲取key爲"Username"的value
string username = Request.Params.GetValues("Username").FirstOrDefault();
string isValidateUsername = "";
//執行Users類的方法IsValidateUsername(string username)判斷用戶名是否存在
if (Users.IsValidateUsername(username))
{
isValidateUsername = "用戶名已存在";
}
else
{
isValidateUsername = "用戶名不存在";
}
//設置輸出流的http MIME爲application/json
Response.ContentType = "application/json";
Response.Write("{result: '" + isValidateUsername + "',textStatus1:'1'}");
Response.Flush();
Response.End();
}
[b]js代碼:[/b]
<script type="text/javascript" src="jquery.js"></script>
<script language="javascript" type="text/javascript">
// <!CDATA[

function IsValidateUsername_onclick() {
$.post("Login.aspx",
{ Action: "get_msg", Username: $("#username>input")[0].value },
function (data, textStatus){
alert(data.result);
}, "json");
}

// ]]>
</script>
<ul>
<li id="username">
用戶名:<asp:TextBox ID="tbUsername" runat="server"></asp:TextBox>
</li>
<li>
<input type="button" value="用戶名是否存在" onclick="IsValidateUsername_onclick()" />
</li>
</ul>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章