Ricardo Rocha
Ricardo Rocha

Reputation: 16266

Cannot access to physical HTML file

I'm migrate my old fashion asp.net MVC application to an angular application.

I've created a subset of .html files that contains templates that will provide the HTML code to build my angular components.

Problem

I want to put this html files inside the folder "Views" that already exists on my application. But when I try to access to .html files I receive the following message:

enter image description here

But if I put the .html files outside this folder I can access directly to them:

enter image description here

Questions

Can you tell me why this is happening?

There is anyway that I can access to html files inside the folder "Views"?

Upvotes: 1

Views: 573

Answers (4)

JuanR
JuanR

Reputation: 7803

To make a long story short, the Views folder is a special folder that holds templates used by actions that are routed by ASP.NET MVC. Because of this, you cannot use it to hold files that are meant to be used directly.

I would suggest ditching the .NET Framework all together since you are going Angular.

If that is not an option or you would like to retain ASP.NET MVC functionality, then simply use another folder (like you have already done by moving the Templates folder to the root).

Upvotes: 2

satish madarapu
satish madarapu

Reputation: 21

As html files are working in views folder, Can you check the path i.e 'Editor/V2/Templates' after 'Views' folder whether it is correct?

Upvotes: 0

Wail
Wail

Reputation: 147

To make this work, I suggest you take the html markup in your html file and put it on a .cshtml view, that you will render using a GET action in the home controller for instance (as you would normaly do in the MVC pattern).

The other way to achieve this (which I don't recommend), is to add your html file to a deployable folder (like the js folder for javascript files), and than you can call your file using a direct link, however you will lose any capabilities of the MVC pattern this way.

Hope this helps.

Upvotes: 0

ste-fu
ste-fu

Reputation: 7482

Try adding an explicit ignore in your RouteConfig

routes.IgnoreRoute("{file}.html");

That should prevent the default routing from taking effect

Upvotes: 1

Related Questions