asp.net本身支持一个runat="server" form 如果需要多个就不能嵌套写了,有些搜索的代码偏偏布局在form里面,而我又不想写成服务器控件,只想通过form进行提交,这时候就很麻烦了,大家有什么好方式?
类似下面的代码,页面顶部尾部中间都有分布,html页面好说,aspx页面怎么设计好呢
<form action="/Search.aspx" method="get" id="searchform" onsubmit="return goSearch()" target="_blank">
<input tabindex="1" type="text" id="keyword" name="keyword" value="" onfocus="this.value=''" />
<button tabindex="2" type="submit">搜 索</button>
</form>
去掉runat="server" 属性,用原始的form就可以多个了~
ASP.NET内部对象模型 就是1个Form 而且1个Form也完全可以满足各种需求
所以 建议你 使用 母板页 可以解决你的问题 又不用使用多FORM
1小时前 红尘中迷茫 : 没有runat="server" 那些服务器控件怎么办? |
采用asp或jsp那种直接提交表单的方法。
比如在另一个页面接收,但是你所要解决的问题或许不应该非用多个加runat的form
对于asp.net应该有合适的解决方案,转换一个思路。
一个页面可以有一个runat="server"表单,其他的用一般的form就可以了
不必去掉 runat=server ,
只要在不同的按钮提供不同的name值,根据这些值来判断提交行为。
或者,通过隐藏域 (<input type="hidden" name="pram1" value="xxx" >) 来确定不同的行为也可。
最后,是微软给出的解决方案:
同一个页面里定义多个runat=server的窗体是可以的,但是只能够有一个窗体的 visible 属性等于 true 。
合理综合运用以上几点,可以解决绝大多数问题了。