一般處理程式中使用隱藏域來實現非Form表單元素上資料的改變
阿新 • • 發佈:2019-01-22
html程式碼:
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <style type="text/css"> div{ width:100px; height:100px; background-color:green; padding-left:50px; padding-top:50px; font-size:xx-large; color:red; } </style> </head> <body> <form method="post" action="Handler.ashx"> <input type="hidden" name="hid" value="$count" /> <div> $div </div> 數值:<input type="text" name="txt" value="$num" /><br /> <input type="submit" value="自增" /><br /> </form> </body> </html>
一般處理程式程式碼:
<%@ WebHandler Language="C#" Class="Handler" %> using System; using System.Web; public class Handler : IHttpHandler { public void ProcessRequest(HttpContext context) { // html頁面有 佔位符 時,需要先執行此頁面; context.Response.ContentType = "text/html"; int num = 0; num = Convert.ToInt32(context.Request.Form["txt"]); // 獲取輸入框中的數值; num++; // 在div上實現自增:由於div上的數值不能傳遞到伺服器,所以可以通過form表單中的隱藏域來實現。 string str = context.Request.Form["hid"]; int i = Convert.ToInt32(str); i++; string filePath = context.Request.MapPath("HtmlPage.html"); // 獲取html檔案的物理路徑; string strHtml = System.IO.File.ReadAllText(filePath); // 讀取html模板內容; strHtml = strHtml.Replace("$num", num.ToString()); // 將數值自增之後的值傳給輸入框; strHtml = strHtml.Replace("$count", i.ToString()).Replace("$div", i.ToString()); context.Response.Write(strHtml); // 輸出html; } public bool IsReusable { get { return false; } } }