I'm fairly new to .NET Core having worked on older .NET versions like Windows forms. I have a nav bar set up in my _Layout page which I want to use to redirect to other Razor pages.
For example I have a Home page (index.cshtml) in a folder called Home off of my Views folder. If I want to select Customer Search option from the nav bar I use an onclick event which calls the function below.
function SearchClick() {
window.location.href = "CustomerSearchView.cshtml";
return false;
}
The CustomerSearchView is in a CustomerSearch folder below the Home folder in Views. There is also a CustomerSearchController with the code
public IActionResult Index()
{
return View();
}
If I try to add the path into the browser such as https://localhost:7022/CustomerSearchView.cshtml I get the error
This localhost page can’t be found - no webpage was found for the web address: https://localhost:7022/CustomerSearchView.cshtml
I have tried all sort of variations using the full path with Views/CustomerSearch and others but get the same error.
I'm not familiar with the routing procedure and I'm not sure what mistake I'm making and I thought it would save time to ask and would be really happy if someone could point it out.
CodePudding user response:
try this
function SearchClick() {
window.location.href = "/CustomerSearch/Index";
return false;
}
CodePudding user response:
I fixed the problem by correcting the routing and adding the following code to my program.cs
app.MapControllerRoute(
name: "customersearch",
pattern: "{controller=CustomerSearchController}/{action=Index}/{id?}",
defaults: new { controller = "CustomerSearchController", action =
"Index" });
When adding any new views with controllers simply add the equivalent routing code for it to make it visible to the project.
