1. 程式人生 > >一般處理程式中使用隱藏域來實現非Form表單元素上資料的改變

一般處理程式中使用隱藏域來實現非Form表單元素上資料的改變

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;
        }
    }

}