In addition to these pages, I need 4 razor pages that have nothing to do with Umbraco and have their own models and logic - standalone pages for filling out input forms.
This is a check-out process where you go through the 4 pages.I am having some problems navigating to these directly and redirecting to them in the controller, because Umbraco is hijacking them.
I would like some pointer on how it is best to accomplish this. I believe I can figure out the details myself, if someone can point me in the right direction with a suggestion and perhaps some links. Should I add some routing to circumvent Umbraco or is there another good way of doing this? Should I use custom controllers or something else?
I have tried these things and I notice that this "Custom MVC Routes" requires me to have a Document Type.
I am accessing the view directly - without a document type. I need my view to inherit the layout of the parent to get the design (this view uses @inherits Umbraco.Web.Mvc.UmbracoTemplatePage)
When I add the layout it says it is passing my model, but the layout page expects RenderModel, which I understand and would expect.
I then follow the guide you sent me to solve this problem and make my custom model inherit from RenderModel. This requires me to add a custructor, like this: public Login(IPublishedContent content) : base(content) { }
And I call it from my controller like this: return View("CheckoutStep2", new Models.Login(CurrentPage));
And now the return view gives me this error: "Cannot find the Umbraco route definition in the route values, the request must be made in the context of an Umbraco request" which I don't really understand.
Note that I have tried different things too, without the SurfaceController etc., but I always run into problems - often the same problem with 'the request must be made in the context of an Umbraco request'
My requirements are:
- I want to call my view directly (without any document type) and I want the view to use the same layout-views as my Umbraco pages
- I want this view to use a custom model
- I want to submit this view to my controller, so I can perform login etc.
Am I going about this the right way? What am I missing?
Combining MVC and Umbraco Razor Pages
I have an Umbraco page with some content pages
In addition to these pages, I need 4 razor pages that have nothing to do with Umbraco and have their own models and logic - standalone pages for filling out input forms.
This is a check-out process where you go through the 4 pages.I am having some problems navigating to these directly and redirecting to them in the controller, because Umbraco is hijacking them.
I would like some pointer on how it is best to accomplish this. I believe I can figure out the details myself, if someone can point me in the right direction with a suggestion and perhaps some links. Should I add some routing to circumvent Umbraco or is there another good way of doing this? Should I use custom controllers or something else?
Thanks in advance for any tips
Hello,
This documentation might help:
http://our.umbraco.org/documentation/Reference/Mvc/custom-routes
http://our.umbraco.org/documentation/Reference/Mvc/custom-controllers
Jeroen
Thanks for the information
I have tried these things and I notice that this "Custom MVC Routes" requires me to have a Document Type.
I am accessing the view directly - without a document type. I need my view to inherit the layout of the parent to get the design (this view uses @inherits Umbraco.Web.Mvc.UmbracoTemplatePage)
I have tried different things and am now looking at SurfaceControllers, using this as inspiration: http://our.umbraco.org/documentation/Reference/Mvc/surface-controllers
This works correctly for the URL http://localhost:50871/umbraco/surface/MySurface/Index using my controller and model, WITHOUT a layout.
When I add the layout it says it is passing my model, but the layout page expects RenderModel, which I understand and would expect.
I then follow the guide you sent me to solve this problem and make my custom model inherit from RenderModel. This requires me to add a custructor, like this: public Login(IPublishedContent content) : base(content) { }
And I call it from my controller like this: return View("CheckoutStep2", new Models.Login(CurrentPage));
And now the return view gives me this error: "Cannot find the Umbraco route definition in the route values, the request must be made in the context of an Umbraco request" which I don't really understand.
Note that I have tried different things too, without the SurfaceController etc., but I always run into problems - often the same problem with 'the request must be made in the context of an Umbraco request'
My requirements are:
- I want to call my view directly (without any document type) and I want the view to use the same layout-views as my Umbraco pages
- I want this view to use a custom model
- I want to submit this view to my controller, so I can perform login etc.
Am I going about this the right way? What am I missing?
I think I am making this way too complicated
At the moment I am looking into if this solves my problem: http://our.umbraco.org/documentation/reference/templating/mvc/forms
Will post back :)
is working on a reply...