2009-10-13 71 views
0

我試圖提交表單的處理程序頁面,但現在沒有什麼工作,它甚至不打...處理器提交表單到處理器不工作

這裏是我的代碼:

<form action="Unsubscription.ashx?actionmethod=subscribe" method="get" > 
<div class="h1"> 
<input type="text" class="input" value="enter your e-mail" name="ekey" /> 
<input type="submit" value="Submit" /> 
</div> 
</form> 

處理代碼:

public void ProcessRequest(HttpContext context) 
{ 
    try 
    { 
     string email = context.Request.Params["ekey"]; 
     switch (context.Request.Params["actionmethod"]) 
     { 

      case "subscribe": 
       NewsLetter.Subscribe(email); 
       break; 
      case "unsubscribe": 
       NewsLetter.Unsubscribe(email); 
       context.Response.ContentType = "text/html"; 
       context.Response.Write("your subscription has been successfully canceled. thanks.<br/><a href='http://www.kayatax.com'><b>home page</b></a>"); 
       break; 
     } 


    } 
    catch   { 
     context.Response.ContentType = "text/html"; 
     context.Response.Write("This e-mail doesn't exist in our database. Thanks.<br/><a href='http://www.kayatax.com'><b>Home Page</b></a>"); 
    } 
} 

回答

0

</<form>標籤格式不正確的一個開始。讓它</form>,因爲我相信你知道。

+0

好的,我改變了它,但現在我無法看到渲染後的表單元素。我不知道爲什麼,也不是很有趣。 Firebug不顯示提交按鈕周圍的表單元素。 – Tarik 2009-10-13 01:16:36

+0

關閉表格標籤,如「」中所述。請注意斜槓。你剛剛把另一個開放「

」標籤 – 2009-10-13 01:26:45

+0

(facepalm)...... – CRice 2009-10-13 01:27:43

0

如果你有瀏覽器端的渲染問題,而你沒有碰到你的服務器端處理器,我會首先調查瀏覽器端。查看通過網絡傳輸的內容:在Firebug中,啓用網絡面板,重新加載頁面,提交表單,然後查看網絡面板中的請求。將鼠標懸停在第一個節點上(對錶單處理程序頁面的請求),並確保請求URL符合您的預期。然後展開該節點並查看請求標頭。

我想知道的第一件事,沒有看到更多的網絡應用程序,是目標Unsubscription.ashx是否與具有表單的頁面在同一目錄中,或者是否存在某種類型的路由方法這樣看。您正在使用文檔相對的URL;你確定目標是你認爲的目標嗎?

順便說一句,你應該使用該更改服務器上的數據表單提交的GET方法;爲此使用POST。這是一個更多的工作,但更安全。 GET requests should be idempotent。如果您使用GET觸發在服務器上更改內容的操作,則可能會發現they're changed when you don't expect them to be。 D'哦!

+0

我試圖使用Firebug,但它沒有顯示任何東西,我也啓用了它。我感覺有點愚蠢,因爲這是我第一次遇到這樣的問題,而我不知道如何解決這個問題,因爲我不知道該怎麼辦使用它。 – Tarik 2009-10-13 01:43:05

0

您的表單正在使用'get',它基本上是HTTPGET。檢查提交的URL和查詢字符串。它應該是

Unsubscription.ashx?actionmethod=subscribe&ekey=enter%20your%20email 

它顯示正確嗎?

您沒有輸入提交按鈕的名稱,但這不應該影響您想要的內容。