2009-10-13 39 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 

它显示正确吗?

您没有输入提交按钮的名称,但这不应该影响您想要的内容。