2010-10-20 60 views
0

我希望能够加载一个自定义的日志页面取决于传递到查询字符串的几个参数。ASP.NET 2.0 - 如何包含包含服务器端代码的文件?

每个定制的登录页面必须能够动态显示登录错误并可能在通过其他变量 假设动态登录页面看起来像这样(过于简单化这里):

<form> 
<% if (has_errors) { Response.Write(error_msg); } %> 
<input type="text" name="email"> 
</form> 

如果aspx页面像这样加载文件:

Response.writefile("path/to/custom/page"); 

该代码在输出中显示并且未得到处理。我尝试了其他方法来加载文件内容(类似于传统的ASP),但每次都得到相同的结果。

我可以将所有自定义页面设置为用户控件,但我需要对css,js和html进行100%的控制 - 并且我在此处阅读的文档表明我不会具有该级别的粒度。 link text

PLUS - 我被困在.NET 2.0的环境 - 所以.NET MVC是不提供给我

任何帮助/建议?

+0

用户控件工作,我想我希望更多的东西MVC样就好了,如果你还不能在MVC +1谐音为约翰·K公司的回答 – Tahbaza 2010-10-20 04:44:28

回答

2

,但我需要在CSS 100%的控制, JS和html

你不会在页面上获得100%的,但你将有用户控件实例内部控制。而且,很多时候,您可以在控制范围内覆盖像CSS这样的技术。最后,因为所有的控件都被整合到一个大的HTML页面中,所以您将拥有与使用客户端技术的单个网页相同的控制级别。


你可以建立一个Web UserControl表示日志/中,然后包括控制的一个实例到任何网页,在任何地方,在多个页面,如果你的愿望。
(请参阅MSDN帮助页上关于如何创建和使用它的主题)。

其他有用的参考文献(这些是在同一主题上的各种角度)。

这应该提供一个良好的开端,以继续寻找,如果这是那种你认为你需要的信息的。

内幕
用户控件可以有它自己的逻辑,访问浏览器查询字符串,请访问网页会话,应用等相当多的东西,它需要知道为自己工作。

面向
此外,由于用户控件也是一个对象的对象,你可以将自己的public的方法和属性添加到它,通过它可以互动与页面(就像你在控制intance沟通与其他Web控件交互,如Button.Text =“点击”,TextBox.BackColor = System.Drawing.Color.Blue等)。

其他选项 - 动态控制负载

你可能想在运行时使用的Page.LoadControl(..)方法动态考虑加载控件:

读出控制对象从基于指定的虚拟文件 路径。

MyControl myControl1 = (MyControl)LoadControl("TempControl_Samples1.cs.ascx"); 
PlaceHolder1.Controls.Add(myControl1); 
+0

做更优雅;但是我在想,被.NET 2所困扰的是在整个岩石中摧毁这个希望。 ascx页面是否可以放入一个文件夹而不被首先编译? – JayTee 2010-10-20 12:27:27

+0

我最终走了一条不同的路线;但是你的回答更实用,因此对于未来访问此问题的人更好 – JayTee 2010-11-16 17:25:03