I haven't used html5mode myself, but I believe you need to set the url base:
<head>
<meta charset="utf-8">
<base href="/Application1/">
</head>
And then your Angular routing setup:
$routeProvider
.when('/view1', {
controller: 'View1Controller',
templateUrl: viewBase + 'view1.html'
})
.when('/view2', {
controller: 'View2Controller',
templateUrl: viewBase + 'view2.html'
})
.otherwise({ redirectTo: '/view1' });
As I said I havent tested this, but that was my understanding of how it
should work.
On Tuesday, May 20, 2014 12:48:02 AM UTC+2, [email protected] wrote:
>
> Thanks for the info Steven. We got it working (sort of). We got it
> working with the hash URLs but not with the HTML5 (no hash) URLs. We were
> wanting to use hash-less URLs, so we'll continue searching. Thanks again.
>
>
>
> On Thursday, May 15, 2014 9:52:25 AM UTC-6, steven smock wrote:
>>
>> Here is what worked for my last MVC 5 project:
>>
>> 1. Create a folder called "Asset" within the site root. This is where
>> the HTML templates, partials, and lazy-loaded scripts will go.
>> 2. Add an IgnoreRoute for "Asset/{*all}" within your RegisterRoutes
>> config method.
>>
>> I am not, however, using HTML5 mode for routing, instead sticking with
>> hashy URLs.
>>
>> Good luck!
>>
>> On Thursday, May 15, 2014 11:16:56 AM UTC-4, [email protected] wrote:
>>>
>>> I’m working on a new ASP.NET MVC and AngularJS application that is
>>> intended to be a collection of SPAs. I’m using the MVC areas concept to
>>> separate each individual SPA, and then I’m using AngularJS within each MVC
>>> area to create the SPA.
>>>
>>> Since I’m new to AngularJS and haven’t been able to find an answer
>>> regarding combining both MVC and AngularJS routing, I thought I’d post my
>>> question here to see if I could get some help.
>>>
>>> I have the standard MVC routing setup, which serves up each MVC area.
>>>
>>> public static void RegisterRoutes(RouteCollection routes)
>>> {
>>> routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
>>> routes.MapMvcAttributeRoutes();
>>> routes.MapRoute(
>>> name: "Default",
>>> url: "{controller}/{action}/{id}",
>>> defaults: new { controller = "Home", action = "Index",
>>> id = UrlParameter.Optional }
>>> );
>>> routes.AppendTrailingSlash = true;
>>> }
>>>
>>> This works fine and gives me URLs like:
>>>
>>> http://localhost:40000/Application1/
>>> http://localhost:40000/Application2/
>>>
>>> Now, within each application area, I’m trying to use AngularJS routing,
>>> also using $locationProvider.html5Mode(true); so that I get the client-side
>>> routing within each area, something like:
>>>
>>> http://localhost:40000/Application1/view1
>>> http://localhost:40000/Application1/view2
>>> http://localhost:40000/Application2/view1/view1a
>>> http://localhost:40000/Application2/view2/view2a
>>> http://localhost:40000/Application2/view3
>>>
>>> Here’s my AngularJS routing snippet for Application1:
>>>
>>> app1.config(['$routeProvider', '$locationProvider', function
>>> ($routeProvider, $locationProvider) {
>>> var viewBase = '/Areas/Application1/app/views/';
>>> $routeProvider
>>> .when('/Application1/view1', {
>>> controller: 'View1Controller',
>>> templateUrl: viewBase + 'view1.html'
>>> })
>>> .when('/Application2/view2', {
>>> controller: 'View2Controller',
>>> templateUrl: viewBase + 'view2.html'
>>> })
>>> .otherwise({ redirectTo: '/Application1/view1' });
>>> $locationProvider.html5Mode(true);
>>> }]);
>>>
>>> So, initially, it seems to work (at least the URL looks correct). But,
>>> when I start navigating between areas or views within an area, or even if I
>>> refresh, something gets “lost” and things don’t work. The URL still looks
>>> correct but views aren’t found and aren’t getting loaded correctly.
>>>
>>> Any help/guidance on how to make ASP.NET MVC and AngularJS routing work
>>> together to give me the scenario described above?
>>>
>>> Thanks!!!
>>>
>>>
>>>
--
You received this message because you are subscribed to the Google Groups
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.