ASP.NET Core Razor Page anchor tag not working inside an Area
I have a set of razor pages at the usual location for an ASP.NET Core project...
/Pages/Index.cshtml
/Pages/About.cshtml
...etc...
They use the usual shared layout file for providing the header and footer content for each page...
/Pages/Shared/_Layout.cshtml
Inside the _Layout.cshtml I have anchor tags in the header and footer sections of the page for going back to the index page, like this...
<a asp-page="About">About</a>
...which generates an actual href of 'http://localhost/About'. This is correct and works just fine. I have since added more razor pages inside an area, like this...
/Areas/Account/Pages/Settings/UserSettings.cshtml
I want the same header and footer display for the Account area pages as for my main pages and so I have set the view start file...
/Areas/Account/_ViewStart.cshtml
...to use the already existing layout, like this...
@{
Layout = "/Pages/Shared/_Layout.cshtml";
}
...and sure enough, my UserSettings page now renders the header and footer for the page as expected. With appropriate images and text.
Except for one problem. The anchor tags are not generating the correct href for any razor page inside the Account area. Instead of generating...
href="http://localhost/About"
...it is generating...
href="http://localhost/Account/Settings/UserSettings"
I believe it is generating a default href for the UserSettings page.
Any ideas?
c# asp.net-core razor-pages
add a comment |
I have a set of razor pages at the usual location for an ASP.NET Core project...
/Pages/Index.cshtml
/Pages/About.cshtml
...etc...
They use the usual shared layout file for providing the header and footer content for each page...
/Pages/Shared/_Layout.cshtml
Inside the _Layout.cshtml I have anchor tags in the header and footer sections of the page for going back to the index page, like this...
<a asp-page="About">About</a>
...which generates an actual href of 'http://localhost/About'. This is correct and works just fine. I have since added more razor pages inside an area, like this...
/Areas/Account/Pages/Settings/UserSettings.cshtml
I want the same header and footer display for the Account area pages as for my main pages and so I have set the view start file...
/Areas/Account/_ViewStart.cshtml
...to use the already existing layout, like this...
@{
Layout = "/Pages/Shared/_Layout.cshtml";
}
...and sure enough, my UserSettings page now renders the header and footer for the page as expected. With appropriate images and text.
Except for one problem. The anchor tags are not generating the correct href for any razor page inside the Account area. Instead of generating...
href="http://localhost/About"
...it is generating...
href="http://localhost/Account/Settings/UserSettings"
I believe it is generating a default href for the UserSettings page.
Any ideas?
c# asp.net-core razor-pages
Have you enabled areas for Razor Pages?
– DavidG
Nov 15 at 23:35
I believe so, I have 'services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);' set inside ConfigureServices
– Phil Wright
Nov 16 at 0:35
add a comment |
I have a set of razor pages at the usual location for an ASP.NET Core project...
/Pages/Index.cshtml
/Pages/About.cshtml
...etc...
They use the usual shared layout file for providing the header and footer content for each page...
/Pages/Shared/_Layout.cshtml
Inside the _Layout.cshtml I have anchor tags in the header and footer sections of the page for going back to the index page, like this...
<a asp-page="About">About</a>
...which generates an actual href of 'http://localhost/About'. This is correct and works just fine. I have since added more razor pages inside an area, like this...
/Areas/Account/Pages/Settings/UserSettings.cshtml
I want the same header and footer display for the Account area pages as for my main pages and so I have set the view start file...
/Areas/Account/_ViewStart.cshtml
...to use the already existing layout, like this...
@{
Layout = "/Pages/Shared/_Layout.cshtml";
}
...and sure enough, my UserSettings page now renders the header and footer for the page as expected. With appropriate images and text.
Except for one problem. The anchor tags are not generating the correct href for any razor page inside the Account area. Instead of generating...
href="http://localhost/About"
...it is generating...
href="http://localhost/Account/Settings/UserSettings"
I believe it is generating a default href for the UserSettings page.
Any ideas?
c# asp.net-core razor-pages
I have a set of razor pages at the usual location for an ASP.NET Core project...
/Pages/Index.cshtml
/Pages/About.cshtml
...etc...
They use the usual shared layout file for providing the header and footer content for each page...
/Pages/Shared/_Layout.cshtml
Inside the _Layout.cshtml I have anchor tags in the header and footer sections of the page for going back to the index page, like this...
<a asp-page="About">About</a>
...which generates an actual href of 'http://localhost/About'. This is correct and works just fine. I have since added more razor pages inside an area, like this...
/Areas/Account/Pages/Settings/UserSettings.cshtml
I want the same header and footer display for the Account area pages as for my main pages and so I have set the view start file...
/Areas/Account/_ViewStart.cshtml
...to use the already existing layout, like this...
@{
Layout = "/Pages/Shared/_Layout.cshtml";
}
...and sure enough, my UserSettings page now renders the header and footer for the page as expected. With appropriate images and text.
Except for one problem. The anchor tags are not generating the correct href for any razor page inside the Account area. Instead of generating...
href="http://localhost/About"
...it is generating...
href="http://localhost/Account/Settings/UserSettings"
I believe it is generating a default href for the UserSettings page.
Any ideas?
c# asp.net-core razor-pages
c# asp.net-core razor-pages
asked Nov 15 at 22:44
Phil Wright
17.3k1269121
17.3k1269121
Have you enabled areas for Razor Pages?
– DavidG
Nov 15 at 23:35
I believe so, I have 'services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);' set inside ConfigureServices
– Phil Wright
Nov 16 at 0:35
add a comment |
Have you enabled areas for Razor Pages?
– DavidG
Nov 15 at 23:35
I believe so, I have 'services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);' set inside ConfigureServices
– Phil Wright
Nov 16 at 0:35
Have you enabled areas for Razor Pages?
– DavidG
Nov 15 at 23:35
Have you enabled areas for Razor Pages?
– DavidG
Nov 15 at 23:35
I believe so, I have 'services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);' set inside ConfigureServices
– Phil Wright
Nov 16 at 0:35
I believe so, I have 'services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);' set inside ConfigureServices
– Phil Wright
Nov 16 at 0:35
add a comment |
1 Answer
1
active
oldest
votes
I find that you need to change
<a asp-page="About">About</a>
to
<a asp-page="/About">About</a>
is
Escape character and /
is the Separator.You won't direct correctly in area if you use asp-page="About"
.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53328921%2fasp-net-core-razor-page-anchor-tag-not-working-inside-an-area%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I find that you need to change
<a asp-page="About">About</a>
to
<a asp-page="/About">About</a>
is
Escape character and /
is the Separator.You won't direct correctly in area if you use asp-page="About"
.
add a comment |
I find that you need to change
<a asp-page="About">About</a>
to
<a asp-page="/About">About</a>
is
Escape character and /
is the Separator.You won't direct correctly in area if you use asp-page="About"
.
add a comment |
I find that you need to change
<a asp-page="About">About</a>
to
<a asp-page="/About">About</a>
is
Escape character and /
is the Separator.You won't direct correctly in area if you use asp-page="About"
.
I find that you need to change
<a asp-page="About">About</a>
to
<a asp-page="/About">About</a>
is
Escape character and /
is the Separator.You won't direct correctly in area if you use asp-page="About"
.
answered Nov 16 at 6:34
Xing Zou
3944
3944
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53328921%2fasp-net-core-razor-page-anchor-tag-not-working-inside-an-area%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Have you enabled areas for Razor Pages?
– DavidG
Nov 15 at 23:35
I believe so, I have 'services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);' set inside ConfigureServices
– Phil Wright
Nov 16 at 0:35