所以...我有一个ASP.NET应用程序。我们假设我将IIS配置为始终指向同一文件index.aspx
。假设我想在C#中编写所有我的代码,然后返回我在C#中生成的一些HTML。我该怎么做?
我是否只有1行代码,
<%@ Page CodeBehind="mycode.cs"
是否有必要拥有这样一个“无用的”文件?我无法将请求直接导入代码隐藏?
其次,关于代码隐藏的一些好的教程在哪里?具体来说,我看到这个Page_Load
事件,我想自动被调用?
我看到很多关于“内联”ASP的教程,但我并不关心。
答案 0 :(得分:1)
听起来你想要一个通用的处理程序。它们在New Item ...对话框中可用。这将为您提供一个.ashx
文件,您可以在其中处理传入的Web请求,就像您在场景中一样,但是更清洁。使用这些可以返回任何类型的HTTP响应,包括HTTP错误。您可以完全访问POST数据,URL参数,cookie等的HTTP上下文。查看更多here。
另一种选择是自己实现IHttpHandler
,尽管使用通用处理程序,通过这项工作没有多大意义。
答案 1 :(得分:1)
还有其他活动吗?它们是什么?
从System.Web.UI.Page继承时,有很多事件可用。你可以看到它们http://msdn.microsoft.com/en-us/library/ms178472.aspx
另外,我如何访问POST数据或请求URL等内容?
this.Request.Form,可以让你从一个页面访问PostData。 this.Request.Url会让你访问网址。
我如何返回HTML回复?还是404?
您可以覆盖页面的Render方法以提供HTML Response。您可以抛出HttpException(404,“找不到文件”)以返回404。
在完成您的问题之后,您很可能需要ASP.NET MVC而不是ASP.NET webforms,或者您可以使用Martin建议的处理程序