Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将主体id设置为.net中的当前文件名_.net_Master Pages - Fatal编程技术网

将主体id设置为.net中的当前文件名

将主体id设置为.net中的当前文件名,.net,master-pages,.net,Master Pages,我不是一个.Net的家伙,但我试图更新现有的.Net网站。即使我正在使用母版页,也尝试为body标记设置唯一id 显然,上面的示例不起作用,但不太确定是否有一个函数返回可以轻松添加到母版页的文件名,以便根据页面名为每个页面的主体标记提供唯一的“id” 我宁愿不必在每个代码隐藏页上设置一些变量,而只在母版页上设置一次 可能是走错了路。使用PHP我已经做了很多次了 基本上,我正在尝试为网站的每个页面获取唯一的主体id。这将允许我使用CSS为页面特定的布局项设置样式 快速的谷歌搜索让我找到了。也许你

我不是一个.Net的家伙,但我试图更新现有的.Net网站。即使我正在使用母版页,也尝试为body标记设置唯一id

显然,上面的示例不起作用,但不太确定是否有一个函数返回可以轻松添加到母版页的文件名,以便根据页面名为每个页面的主体标记提供唯一的“id”

我宁愿不必在每个代码隐藏页上设置一些变量,而只在母版页上设置一次

可能是走错了路。使用PHP我已经做了很多次了


基本上,我正在尝试为网站的每个页面获取唯一的主体id。这将允许我使用CSS为页面特定的布局项设置样式

快速的谷歌搜索让我找到了。也许你需要的是
Request.Url

一个快速的谷歌搜索让我找到了。也许你需要的是
Request.Url

你可能想要每个使用母版页的页面,在页面上添加一些加载javascript(启动脚本块),JS函数将设置主体id

在每个页面都包含的js文件中定义setBodyId(txt)函数。甚至把它放在主页上。然后这样做(未经测试):

在codebehind中的OnPreRender事件中:

ScriptManager.RegisterStartupScript(this, typeof(MyPage), "MyPage_Init", "setBodyId('MyPageaspx');", true);
那么您的JS函数将如下所示(未经测试):


注意:我从页面名称中去掉了点,以避免正文id中出现句点。

您可能希望每个使用母版页的页面都添加一些重载javascript到页面(启动脚本块),JS函数将设置正文id

在每个页面都包含的js文件中定义setBodyId(txt)函数。甚至把它放在主页上。然后这样做(未经测试):

在codebehind中的OnPreRender事件中:

ScriptManager.RegisterStartupScript(this, typeof(MyPage), "MyPage_Init", "setBodyId('MyPageaspx');", true);
那么您的JS函数将如下所示(未经测试):


注意:我从页面名称中去掉了点,以避免正文id中出现句点。

如果希望母版页中包含解决方案,请向正文标记添加onload函数调用

<body onload="setBodyId()">

如果希望母版页中包含解决方案,请向body标记添加onload函数调用

<body onload="setBodyId()">

我做的正是你所说的。我就是这样做的

body标签中的内容非常接近。这是我在母版页的标记中使用的,它是一种代码隐藏方法

<body id="<%=SetupPageName()%>">
基本上,这会获取您将在运行时访问的页面的文件名

以下方法用于获取页面的文件名,然后将该文件名作为唯一id分配给生成的页面

 private string pageName = string.Empty;

protected string SetupPageName()
{
    string pageName = GetPageName();
    return pageName;
}

private string GetPageName()
{
    pageName = Path.GetFileNameWithoutExtension(Request.FilePath);
    if (pageName == "default")
    {
        pageName = "Default";
    }
    return pageName;
}
现在,您应该能够像访问任何其他类型的ID一样访问该主体ID。我已经使用它通过样式表启用了导航高亮显示。还有几个步骤涉及到这一点,但你通常可以在谷歌上找到这些答案


祝你好运,希望这能有所帮助。

我已经完成了你所说的。我就是这样做的

body标签中的内容非常接近。这是我在母版页的标记中使用的,它是一种代码隐藏方法

<body id="<%=SetupPageName()%>">
基本上,这会获取您将在运行时访问的页面的文件名

以下方法用于获取页面的文件名,然后将该文件名作为唯一id分配给生成的页面

 private string pageName = string.Empty;

protected string SetupPageName()
{
    string pageName = GetPageName();
    return pageName;
}

private string GetPageName()
{
    pageName = Path.GetFileNameWithoutExtension(Request.FilePath);
    if (pageName == "default")
    {
        pageName = "Default";
    }
    return pageName;
}
现在,您应该能够像访问任何其他类型的ID一样访问该主体ID。我已经使用它通过样式表启用了导航高亮显示。还有几个步骤涉及到这一点,但你通常可以在谷歌上找到这些答案

祝你好运,希望这能有所帮助。

我正在使用这个:

<body id="<%= Path.GetFileNameWithoutExtension(Request.FilePath) %>">

但URL重写并不友好。

我使用的是:

<body id="<%= Path.GetFileNameWithoutExtension(Request.FilePath) %>">


但URL重写并不友好。

为什么要使用文件名?例如,如果使用JQuery,这可能会导致问题,因为它不喜欢ID中的句点。也许可以提及您正试图通过此id实现的目标-您可能会得到一个很好的替代解决方案答案…更新的问题。我只需要为每个页面指定一个特定的主体id,并认为文件名应该是一个很好的唯一id。为什么要使用文件名?例如,如果使用JQuery,这可能会导致问题,因为它不喜欢ID中的句点。也许可以提及您正试图通过此id实现的目标-您可能会得到一个很好的替代解决方案答案…更新的问题。我只需要为每个页面指定一个特定的主体id,并认为文件名应该是一个好的唯一id。System.IO.Path.GetFileName(Request.PhysicalPath)是获取文件名的一种方法。无论如何,在不使用javascriptSystem.IO.Path.GetFileName(Request.PhysicalPath)的情况下将该路径名获取到母版页是获取文件名的一种方法。无论如何,在不使用javascript的情况下将该路径名获取到母版页