当前位置:编程学习 > C#/ASP.NET >>

ASP.NET如何高效率生成1万一个<form> ???

做个小实验,如果是ASP, 我们可以用

<%
create = "Yes" 

if create = "Yes" then%>

<form>

<input type="text" name="txt1" id="txt1">
.......

</form>

<%end if%>

那么用asp.net我们该怎么做呢?

这个问题 的实际用途就好比常见的后台拥护管理,总管理员进入后要能看见所有菜单,一般管理员只能看见部分,在ASP中,我们通常只需要用if 语句判断以下 session("user"),然后后面跟需要显示的HTML代码,就可以了,

那么在asp.net中,如何做呢?。因为控件和代码是分离的,我们难道把全部的HTML转化为服务器控件,然后再分配个ID,然后再在分离出来的代码里控制,这样太被动了吧? 大家通常都是怎么解决的。就像上面,假如我们只是想测试一下ASP和ASP。NET的性能。我们想产生1万个<form>来比较,该怎么办,用response.write吗,我测试过,但是这样用response.write("<form>")的asp.net代码比asp直接用if 语句产生的, 时间上多了一倍以上。还有其他好办法吗? --------------------编程问答-------------------- 工具用对了才叫工具...小李他妈的飞刀不用来杀人可能不如一把水果刀...

建议lz学习OOP,OOD... --------------------编程问答-------------------- 另外补充一句,我通常用的是2.0的membership,根本就看不出他的运行原理,不过我想它大概和ASP的差不多,都是通过SESSION或者COOKIE来判断。 --------------------编程问答-------------------- 2楼你倒是说个说法也成,别他妈的飞刀不飞刀的。 --------------------编程问答-------------------- 呵,小李他妈的飞刀。。。 --------------------编程问答-------------------- .net也可以用<%%>的 --------------------编程问答-------------------- 你实现ASP的用法 也能在.NET上使用

还有 membership 这个玩意儿 压根儿就没使用过
还是自己做方便 --------------------编程问答-------------------- asp 有的 .net 同样有,

明白不?LZ

呵呵,

看样子混得不是很久,

连基本上的.net webform 运行原理都还没搞清楚,

--------------------编程问答-------------------- asp能实现的asp.net都能搞定,从asp到asp.net要转变开发思路! --------------------编程问答-------------------- 前台用控件,然后在后台批字符串,在给值它 --------------------编程问答-------------------- 建议LZ别下子想把整个项目从asp变成asp.net
因为你对asp.net的不熟悉 !
什么控件什么的都不知道 !!!
所以还是慢慢来!先从头学起!等熟练的时候!
也就知道个1,2了...... --------------------编程问答-------------------- 遍历输出

再说这么多form都晕死你 --------------------编程问答-------------------- 实现方法并不重要.有很多.开发思维要转变一下了. --------------------编程问答-------------------- 实现方法并不重要.有很多.开发思维要转变一下了. --------------------编程问答-------------------- 我之所以拿这个问题出来说,是因为一直没找到合适的解决的方法,而大家给的意见也只是泛泛而谈,没有实质性的突破。

ASP.NET可以用<% %>,这我知道。但是ASP.net所追求的是程序代码与HTML代码分开。以及UI,逻辑,数据业务分离的三层架构。是不允许这种<% %>结构存在的。所以如果我们还用<%if then%> + html +<%end if%>,也就显示不出来asp.net的特点了,同时,在ASP.NET1.1中是很明确的说明放在<%%> 中间的程序代码是不编译的,(2.0这点我不清楚)。这就足说明微软并不想.net在架构上再走asp的无序之路。



楼上说那么多from,起初有这个想法我只是想测试一下asp和 asp.net在运行速度上的孰优赎劣,但却发现用asp.net显著的runat ="server" 却如此难以实现。同时我试了一下asp.net用response.write 和ASP的<%if then%> + html +<%end if%>,发现asp.net真的很慢,足足花了近乎ASP一倍的时间,而且ASP只和HTML之间差1~2秒钟。 


有人会提到用缓存,这是以牺牲内存资源为代价来提高性能的,同时在IIS 6.0中也加入了对asp缓存的支持。抛开缓存不讲,我觉得以.NET的优势,应该性能不输于ASP才对,期待高手!

--------------------编程问答-------------------- 我之所以拿这个问题出来说,是因为一直没找到合适的解决的方法,而大家给的意见也只是泛泛而谈,没有实质性的突破。

ASP.NET可以用<% %>,这我知道。但是ASP.net所追求的是程序代码与HTML代码分开。以及UI,逻辑,数据业务分离的三层架构。是不允许这种<% %>结构存在的。所以如果我们还用<%if then%> + html +<%end if%>,也就显示不出来asp.net的特点了,同时,在ASP.NET1.1中是很明确的说明放在<%%> 中间的程序代码是不编译的,(2.0这点我不清楚)。这就足说明微软并不想.net在架构上再走asp的无序之路。



楼上说那么多from,起初有这个想法我只是想测试一下asp和 asp.net在运行速度上的孰优赎劣,但却发现用asp.net显著的runat ="server" 却如此难以实现。同时我试了一下asp.net用response.write 和ASP的<%if then%> + html +<%end if%>,发现asp.net真的很慢,足足花了近乎ASP一倍的时间,而且ASP只和HTML之间差1~2秒钟。 


有人会提到用缓存,这是以牺牲内存资源为代价来提高性能的,同时在IIS 6.0中也加入了对asp缓存的支持。抛开缓存不讲,我觉得以.NET的优势,应该性能不输于ASP才对,期待高手!

--------------------编程问答-------------------- .Net中设计的思路就不是这样的吧
如果要实现常见的后台拥护管理,总管理员进入后要能看见所有菜单,一般管理员只能看见部分这类问题
通常.Net中会从DB设计上去控制权限而非UI上控制的吧 --------------------编程问答-------------------- asp.net中只能由一个form --------------------编程问答--------------------  asp.net是只有一個運行于服務器端的from,那如果一個頁面想產生很多htmlform,該怎么做呢,ASP2,3句就搞定了,為什么asp.net做不了啊 --------------------编程问答-------------------- asp.net中只能由一个服务器端的form
 
nologin
----------
用response.write(" <form >")产生form
---------------------------------------------
当然 你这种方式是可以的
 protected void Page_Load(object sender, EventArgs e)
    {
        for (int i = 2; i < 10; i++)
        {
            Response.Write("<form id='form2'>"+i.ToString()+"</form>");
        }
        Response.End();
    }

但是 你不是用oo思想做的
----------------------------------------------------------

我们想产生1万个 <form >来比较,该怎么办,用response.write吗,我测试过,但是这样用response.write(" <form >")的asp.net代码比asp直接用if 语句产生的, 时间上多了一倍以上。还有其他好办法吗?
---------------------------------------------------------------------
你这样和asp.net比可不行  
asp 是不是只输出一个form到客户端,而不是多个form? 如果是, asp.net是输出多个form 占用大量带宽是网速慢 你这样比有意义吗??????
你产生form原因是什么
----
这个问题 的实际用途就好比常见的后台拥护管理,总管理员进入后要能看见所有菜单,一般管理员只能看见部分,在ASP中,我们通常只需要用if 语句判断以下 session("user"),然后后面跟需要显示的HTML代码,就可以了,
----
这个功能非常简单  无非作个用户控件 根据权限设置显示菜单 很简单
---------------------------------------------------------------------------
我通常用的是2.0的membership,根本就看不出他的运行原理,不过我想它大概和ASP的差不多,都是通过SESSION或者COOKIE来判断。
你把app_data文件夹删除 看一下 就明白了 如果不明白 你找书看看他的原理 很简单 就是数据库访问而已  我们大部分都是自己做
------------------------------------------
你用asp思想来做asp.net 那你还是用asp较好


--------------------编程问答-------------------- Response.Write() --------------------编程问答--------------------  再说一下 这个程序
<% 
create = "Yes"  

if create = "Yes" then% > 

<form > 

<input type="text" name="txt1" id="txt1" > 
....... 

</form > 

<%end if% > 
好像你用用到判断语句
如果成立 就输出form 到客户端把

但你的 asp.net里 是否有判断后 输出

抱歉说了那么多
--------------------编程问答-------------------- 可以用硬编码?
在cs里面定义一过程,或者一全局变量

把你的form里面的html转换为字符串,

过程,或全局变量返回经过处理的html

这样再在aspx中<%=变量名或过程名称%> --------------------编程问答-------------------- 一个form就够了,要那么多干什么? --------------------编程问答-------------------- up --------------------编程问答-------------------- 简单一点的实现方法

做一个登录后的页面,将以下代码放入,用不同的角色登录.

<asp:LoginView ID="LoginView1" runat="server">
                
        <RoleGroups>
       
        <asp:RoleGroup Roles="admin">
        <ContentTemplate>
        <a href="">admin角色可见</a>
        </ContentTemplate>
        </asp:RoleGroup>
        
        <asp:RoleGroup Roles="user">
        <ContentTemplate>
        user角色可见
        </ContentTemplate>
        </asp:RoleGroup>
        
        
        </RoleGroups>
        </asp:LoginView>
     --------------------编程问答-------------------- .NET的强大在于它的类库,适用于复杂的业务逻辑与服务器端操作

客户端HTML说白了是字符串,你可以在服务器端整个生成好这个字符串,然后赋值给Literal控件
也可以override Render方法
--------------------编程问答-------------------- 路过····接分 --------------------编程问答--------------------
引用 1 楼 vrhero 的回复:
工具用对了才叫工具...小李他妈的飞刀不用来杀人可能不如一把水果刀... 

建议lz学习OOP,OOD...


哈哈.........有意思 --------------------编程问答--------------------
引用 2 楼 nologin 的回复:
另外补充一句,我通常用的是2.0的membership,根本就看不出他的运行原理,不过我想它大概和ASP的差不多,都是通过SESSION或者COOKIE来判断。


一般不用.........自己写个类 --------------------编程问答-------------------- 用个Panel吧就可以判断,,,
把这

<form> 

<input type="text" name="txt1" id="txt1"> 
....... 

</form> 
内容放到panel里面去,,,再判断panel的Visible是否真,就可以了


label也可以,,,一个样子,,,看来楼主是刚入门,,,思想没转到asp.net的开发思路...


实现同一个效果,,asp.net有自己的方法,,,不要把asp的写法强行用在asp.net上,,那样你是看不出asp.net的强大的. --------------------编程问答--------------------
引用 26 楼 viena 的回复:
.NET的强大在于它的类库,适用于复杂的业务逻辑与服务器端操作 

客户端HTML说白了是字符串,你可以在服务器端整个生成好这个字符串,然后赋值给Literal控件 
也可以override Render方法 


说得好,.NET的强大之处在于它的类库,至于表现层的东西你是喜欢用ASP的写法还是ASP.NET的服务器控件这又有什么关系呢。 --------------------编程问答-------------------- 觉得在代码内写<%..%>反而方便些!
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,