Making custom URLs in Umbraco 7.6 without document type
What I have
I'm making a site using Umbraco 7.6.6 and I want to access a third party database of my client. For that I've made a custom controller named QuestionsController. Inside this I've created an action:
public class QuestionsController : SurfaceController
{
private QuestionService _questionService = new QuestionService();
[HttpGet]
public ActionResult Index()
{
return PartialView("~/Views/MacroPartials/Questions.cshtml", _questionService.ReadFile());
}
}
This page index page works fine and is called by this code on the view of my document type:
Html.RenderAction("index", "Questions");
Overview page (just an image):
Here is my model I've created
public class Question
{
public int ID { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public User User { get; set; }
public DateTime Created { get; set; }
public List<Comment> Comments { get; set; }
}
What I will
Now I'll to create a details page with more information on the front side.
[HttpGet]
[Route("~/questions/details/{id}")]
public ActionResult Details(int id)
{
return View(_questionService.ReadFile().ElementAt(id));
}
Redirecting to that page I'll do like this:
<a href="~/questions/details/@q.ID">@q.Title</a>
But this doesn't work at all. The detail page gives me a 404 (page not found) error.
Question
My question is now: How could I create custom URLs like ~/questions/details/{id} without a document type?
You need to create an Application startup events where you configure the MapHttpAttributeRoutes.
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
}
}
using System;
using System.Web.Http;
using System.Web.Routing;
using Umbraco.Core;
using Umbraco.Core.Models;
namespace OurUmbraco.MyNamespace.Api
{
public class MapRoutesEvent : ApplicationEventHandler
{
protected override void ApplicationStarted(UmbracoApplicationBase umbraco, ApplicationContext context)
{
WebApiConfig.Register(GlobalConfiguration.Configuration);
}
}
}
UPDATE: This setting will only work for WebAPI.
I think you need to do this:
Making custom URLs in Umbraco 7.6 without document type
What I have
I'm making a site using Umbraco 7.6.6 and I want to access a third party database of my client. For that I've made a custom controller named
QuestionsController
. Inside this I've created an action:This page index page works fine and is called by this code on the view of my document type:
Overview page (just an image):
Here is my model I've created
What I will
Now I'll to create a details page with more information on the front side.
Redirecting to that page I'll do like this:
But this doesn't work at all. The detail page gives me a 404 (page not found) error.
Question
My question is now: How could I create custom URLs like
~/questions/details/{id}
without a document type?Hi Hein,
You need to create an Application startup events where you configure the MapHttpAttributeRoutes.
UPDATE: This setting will only work for WebAPI. I think you need to do this:
https://shazwazza.com/post/custom-mvc-routing-in-umbraco
https://our.umbraco.org/forum/umbraco-7/using-umbraco-7/59312-Umbraco-7-setup-with-custom-route-values
http://jamessouth.me/archive/fun-with-umbracovirtualnoderoutehandler/
is working on a reply...