2013-03-20 63 views
1

我个人有T以下ASPX来源:创建表单操作可变

<form name="AddComment" action="ViewArticle.aspx?ArticleID=<%=ArticleID %>" method="post" runat="server"> 

的问题是,当我点击提交,我得到这个网址

http://localhost:61175/WebSite1/ViewArticle.aspx?ArticleID=%3C%=ArticleID%20%%3E 

但我希望得到这个网址:

http://localhost:61175/WebSite1/ViewArticle.aspx?ArticleID=1 

如果我删除了“runat =”server“”命令,它可以正常工作,但是这个表单可以工作 变量和runat服务器在同一时间吗?

回答

1

也许你可以尝试设置行动只是形式类似这样的标记之前(或代码隐藏在你的选择)

<% 
    this.Form.Action = "ViewArticle.aspx?ArticleID=" + ArticleID.ToString(); 
%> 
<form name="AddComment" method="post" runat="server"> 
+0

它很好用!非常感谢你!!! – 2013-03-20 16:45:58

+0

如何将代码放入隐藏页面?当我这样做时,我得到一个错误 – 2013-03-20 21:03:07

+0

@NaveTseva在这里工作正常,与第一行page_load完全相同的行。你得到的错误是什么? – jbl 2013-03-21 09:17:52

1

在服务器端控件,你不能做这样的事情<%= ActionID %>你只能绑定<%#ActionID%>。

上面的解决方案将不起作用,因为表单不是这种形式。您必须提供控制ID +名称,而不是设置帖子网址。如果它不是一个选项,您可以在控制树中动态搜索表单项,因此可以处理动态ID-s。

+0

现在我明白了,谢谢! – 2013-03-20 16:47:13

+1

与其他控件相比,Form有一个特殊的状态:http://msdn.microsoft.com/en-us/library/system.web.ui.page.form.aspx – jbl 2013-03-20 16:51:26

+0

很高兴知道,thx! – nBalu 2013-03-21 09:35:15