我有一个名为Default.aspx
的ASPX页面。从它在Page_Load()
上的代码背后,我想把"Default.aspx“单独放到一个字符串中:
protected void Page_Load(object sender, EventArgs e)
{
string aspxFileName = ?;
}
我应该用什么替换?
-什么会让我得到ASPX文件名?
发布于 2009-11-28 09:11:36
System.IO.Path.GetFileName(Request.PhysicalPath);
发布于 2009-11-28 09:09:10
protected void Page_Load(object sender, EventArgs e)
{
string cssFileName = Path.GetFileName(this.Request.PhysicalPath).Replace(".aspx", ".css");
}
发布于 2009-11-28 09:45:08
一些简短的回答已经被采纳了,因为您可能希望在其他Web表单中执行此操作,因此这里提供了一个扩展的解决方案,该解决方案将统一影响项目中的所有Web表单(包括根据请求获取文件名的代码)。
通过将此代码放入文件中,为System.Web.UI.Page类创建一个扩展方法。您需要使用.NET 3.5。
namespace MyExtensions {
using System.Web.UI;
static public class Extensions {
/* You can stuff anybody else's logic into this
* method to get the page filename, whichever implementation you prefer.
*/
static public string GetFilename(this Page p) {
// Extract filename.
return p.AppRelativeVirtualPath.Substring(
p.AppRelativeVirtualPath.IndexOf("/") + 1
);
}
}
}
要从任何ASP.NET网页表单获取文件名(例如,在您指定的load方法中):
using MyExtensions;
protected void Page_Load(object sender, EventArgs e) {
string aspxFileName = this.GetFilename();
}
在项目中的任何Web窗体上调用此方法。
https://stackoverflow.com/questions/1811211
复制相似问题