![]() |
1
75
此解决方案将为您提供对控件整体的编程访问,包括控件上的所有属性。此外,在提交时,只有文本框值将显示在URL中,因此GET请求URL将更“有意义”
然后,在代码背后,您可以在页面加载时执行所需的所有操作。
如果你不想要有
唯一的缺点是,您将无法访问许多“有用”的ASP.NET服务器控件,如
|
![]() |
2
12
在表单标记中不使用runat=“server”,这无疑是(imho)正确的选择。这只意味着您需要直接从request.querystring中提取值,不过,在本例中: 在.aspx页本身中:
在后面的代码中:
这里的诀窍是,我们在文本输入的值“”属性内使用ASP.NET文本,因此文本框本身不必runat=“server”。然后,结果被包装在一个asp:panel中,并在页面加载时设置visible属性,具体取决于是否要显示任何结果。 |
![]() |
3
2
好的,乔恩,首先是视图状态问题: 我从2.0开始就没有检查过是否有任何内部代码更改,但下面是几年前我处理摆脱视图状态的方法。实际上,这个隐藏字段是在HTMLForm中硬编码的,所以您应该派生出新字段并单步执行它的呈现,自己进行调用。请注意,如果您坚持使用普通的旧输入控件(我猜您希望这样做,因为它也有助于不需要客户端上的JS),那么您也可以将eventtarget和eventtarget保留在外:
所以您得到了这3个静态的MethodInfo,并调用它们,跳过这个viewstate部分;)
这是表单的类型构造函数:
如果我把你的问题弄对了,你也不想把post作为表单的动作,下面是你应该怎么做的:
我想差不多就是这样。告诉我进展如何。 编辑:我忘记了页面视图状态方法: 所以您的定制表单:htmlform得到了它全新的摘要(或者不是)page:system.web.ui.page:p
在本例中,我密封方法,因为您不能密封页面(即使它不是抽象的),Scott Guthrie将把它包装成另一个:p),但您可以密封您的表单。 |
![]() |
4
1
您是否考虑过在表单发布时不删除发布,而是重定向到合适的get url。也就是说,接受get和post,但是post构造一个get请求并重定向到它。如果你想让它独立于页面,可以在页面上或者通过httpmodule来处理。我认为这会使事情变得更容易。 编辑: 我假设您在页面上设置了enableViewState=“false”。 |
![]() |
5
1
我将创建一个HTTP模块来处理路由(类似于MVC,但并不复杂,只是几个
顺便说一下,为了简化操作,您可以在模块中进行参数验证(因为它可能与路由共享代码),并将其保存到
|
![]() |
6
1
我真的很高兴完全放弃了page类,只使用基于url的大开关案例处理每个请求。evey“page”变成了一个HTML模板和一个C对象。模板类使用一个regex,该regex具有与键集合进行比较的匹配委托。 效益:
流浪者:
乔恩,周六早上我们在做什么:)? |
![]() |
7
1
我认为asp:repeater控件已经过时了。 ASP.NET模板引擎很不错,但您也可以用for循环轻松完成重复…
ASP.NET窗体有点不错,有来自Visual Studio的不错的支持,但这个runat=“server”的东西是错误的。视图状态为。 我建议您看看是什么让ASP.NET MVC如此出色,是谁让它远离了ASP.NET窗体方法而不将其全部丢弃。 您甚至可以编写自己的构建提供者资料来编译自定义视图,如nhaml。我认为您应该在这里寻找更多的控件,并且仅仅依靠ASP.NET运行时来包装HTTP和作为CLR宿主环境。如果您运行集成模式,那么您也可以操作HTTP请求/响应。 |
|
Roy · SQL C#:结果未返回任何内容。读取() 7 年前 |
![]() |
Pablo · 如何在Regex.replace中仅替换捕获组? 9 年前 |
![]() |
rudimenter · 为什么以下代码编译和执行成功? 11 年前 |
![]() |
Rachel · 是否有任何原因在该代码块的List<T>中找不到现有项? 11 年前 |
![]() |
oshirowanen · 动态超级链接 11 年前 |
![]() |
sab669 · SharpSVN不迭代所有子目录和文件 11 年前 |
![]() |
ForeverWintr · Excel中的奇怪行为。工作表。单元格[行,列] 12 年前 |