New route re-writes URL to default route, SignalR stops connecting
I've attempted to add a route in RouteConfig.cs
called 'CustRoute', the only other route present is the default route.
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "CustRoute",
url: "{cust}/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
constraints: new { cust = new CustConstraint() }
).RouteHandler = new CustMvcRouteHandler();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
The URL reverts back to the default one when loading the page. The page loads but I cannot connect to SignalR either.
For example, if I go to www.example.com/Cust/Home
it will change the URL to www.example.com/Home
on loading the page.
angularjs asp.net-mvc signalr
add a comment |
I've attempted to add a route in RouteConfig.cs
called 'CustRoute', the only other route present is the default route.
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "CustRoute",
url: "{cust}/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
constraints: new { cust = new CustConstraint() }
).RouteHandler = new CustMvcRouteHandler();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
The URL reverts back to the default one when loading the page. The page loads but I cannot connect to SignalR either.
For example, if I go to www.example.com/Cust/Home
it will change the URL to www.example.com/Home
on loading the page.
angularjs asp.net-mvc signalr
Show how you setup signalR. This looks like a route conflict issue. Also include the custom constraint and route handler
– Nkosi
Nov 30 '18 at 3:19
It was a route conflict issue, but I found it was routing in AngularJS that caused the problem... ngRoute is used in our application and the <base> tag in <head> was only pointing to application path only and not to the route's path. I'll explain this further in an answer.
– MinistryOfChaps
Nov 30 '18 at 11:55
1
I am glad you figured it out.
– Nkosi
Nov 30 '18 at 14:07
add a comment |
I've attempted to add a route in RouteConfig.cs
called 'CustRoute', the only other route present is the default route.
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "CustRoute",
url: "{cust}/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
constraints: new { cust = new CustConstraint() }
).RouteHandler = new CustMvcRouteHandler();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
The URL reverts back to the default one when loading the page. The page loads but I cannot connect to SignalR either.
For example, if I go to www.example.com/Cust/Home
it will change the URL to www.example.com/Home
on loading the page.
angularjs asp.net-mvc signalr
I've attempted to add a route in RouteConfig.cs
called 'CustRoute', the only other route present is the default route.
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "CustRoute",
url: "{cust}/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
constraints: new { cust = new CustConstraint() }
).RouteHandler = new CustMvcRouteHandler();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
The URL reverts back to the default one when loading the page. The page loads but I cannot connect to SignalR either.
For example, if I go to www.example.com/Cust/Home
it will change the URL to www.example.com/Home
on loading the page.
angularjs asp.net-mvc signalr
angularjs asp.net-mvc signalr
edited Nov 30 '18 at 14:13
MinistryOfChaps
asked Nov 23 '18 at 14:17
MinistryOfChapsMinistryOfChaps
1,046721
1,046721
Show how you setup signalR. This looks like a route conflict issue. Also include the custom constraint and route handler
– Nkosi
Nov 30 '18 at 3:19
It was a route conflict issue, but I found it was routing in AngularJS that caused the problem... ngRoute is used in our application and the <base> tag in <head> was only pointing to application path only and not to the route's path. I'll explain this further in an answer.
– MinistryOfChaps
Nov 30 '18 at 11:55
1
I am glad you figured it out.
– Nkosi
Nov 30 '18 at 14:07
add a comment |
Show how you setup signalR. This looks like a route conflict issue. Also include the custom constraint and route handler
– Nkosi
Nov 30 '18 at 3:19
It was a route conflict issue, but I found it was routing in AngularJS that caused the problem... ngRoute is used in our application and the <base> tag in <head> was only pointing to application path only and not to the route's path. I'll explain this further in an answer.
– MinistryOfChaps
Nov 30 '18 at 11:55
1
I am glad you figured it out.
– Nkosi
Nov 30 '18 at 14:07
Show how you setup signalR. This looks like a route conflict issue. Also include the custom constraint and route handler
– Nkosi
Nov 30 '18 at 3:19
Show how you setup signalR. This looks like a route conflict issue. Also include the custom constraint and route handler
– Nkosi
Nov 30 '18 at 3:19
It was a route conflict issue, but I found it was routing in AngularJS that caused the problem... ngRoute is used in our application and the <base> tag in <head> was only pointing to application path only and not to the route's path. I'll explain this further in an answer.
– MinistryOfChaps
Nov 30 '18 at 11:55
It was a route conflict issue, but I found it was routing in AngularJS that caused the problem... ngRoute is used in our application and the <base> tag in <head> was only pointing to application path only and not to the route's path. I'll explain this further in an answer.
– MinistryOfChaps
Nov 30 '18 at 11:55
1
1
I am glad you figured it out.
– Nkosi
Nov 30 '18 at 14:07
I am glad you figured it out.
– Nkosi
Nov 30 '18 at 14:07
add a comment |
1 Answer
1
active
oldest
votes
I fixed the issue after some more investigation, it was ngRoute
in the AngularJS code that caused the problem because the HTML <base>
tag in the <head>
element did not account for /Cust/
in my URL.
ngRoute uses the <base>
tag to route URLs (credit to this answer for the info).
I fixed the issue by changing <base href="@(Request.ApplicationPath)"/>
to <base href="@(Request.ApplicationPath + "/" + custName)"/>
.
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%2f53448347%2fnew-route-re-writes-url-to-default-route-signalr-stops-connecting%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 fixed the issue after some more investigation, it was ngRoute
in the AngularJS code that caused the problem because the HTML <base>
tag in the <head>
element did not account for /Cust/
in my URL.
ngRoute uses the <base>
tag to route URLs (credit to this answer for the info).
I fixed the issue by changing <base href="@(Request.ApplicationPath)"/>
to <base href="@(Request.ApplicationPath + "/" + custName)"/>
.
add a comment |
I fixed the issue after some more investigation, it was ngRoute
in the AngularJS code that caused the problem because the HTML <base>
tag in the <head>
element did not account for /Cust/
in my URL.
ngRoute uses the <base>
tag to route URLs (credit to this answer for the info).
I fixed the issue by changing <base href="@(Request.ApplicationPath)"/>
to <base href="@(Request.ApplicationPath + "/" + custName)"/>
.
add a comment |
I fixed the issue after some more investigation, it was ngRoute
in the AngularJS code that caused the problem because the HTML <base>
tag in the <head>
element did not account for /Cust/
in my URL.
ngRoute uses the <base>
tag to route URLs (credit to this answer for the info).
I fixed the issue by changing <base href="@(Request.ApplicationPath)"/>
to <base href="@(Request.ApplicationPath + "/" + custName)"/>
.
I fixed the issue after some more investigation, it was ngRoute
in the AngularJS code that caused the problem because the HTML <base>
tag in the <head>
element did not account for /Cust/
in my URL.
ngRoute uses the <base>
tag to route URLs (credit to this answer for the info).
I fixed the issue by changing <base href="@(Request.ApplicationPath)"/>
to <base href="@(Request.ApplicationPath + "/" + custName)"/>
.
answered Nov 30 '18 at 12:08
MinistryOfChapsMinistryOfChaps
1,046721
1,046721
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.
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%2f53448347%2fnew-route-re-writes-url-to-default-route-signalr-stops-connecting%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
Show how you setup signalR. This looks like a route conflict issue. Also include the custom constraint and route handler
– Nkosi
Nov 30 '18 at 3:19
It was a route conflict issue, but I found it was routing in AngularJS that caused the problem... ngRoute is used in our application and the <base> tag in <head> was only pointing to application path only and not to the route's path. I'll explain this further in an answer.
– MinistryOfChaps
Nov 30 '18 at 11:55
1
I am glad you figured it out.
– Nkosi
Nov 30 '18 at 14:07