MVC Widget Hybrid Mode on Home Page
I'm having issues with a MVC widget. It's a Registration form that sits on the home page.
The controller is similar to:
01.[ControllerToolboxItem(Name = "RegisterForInterestMvc", Title = "RegisterForInterestMvc", SectionName = "MvcWidgets"), Telerik.Sitefinity.Web.UI.ControlDesign.ControlDesigner(typeof(Em2.SitefinityWebApp.WidgetDesigners.RegisterForInterestMvc.RegisterForInterestMvcDesigner))]02. public class RegisterForInterestMvcController : Controller03. 04. /// <summary>05. /// Gets or sets the message.06. /// </summary>07. [Category("String Properties")]08. public string Message get; set; 09. 10. /// <summary>11. /// This is the default Action.12. /// </summary>13. public ActionResult Index()14. 15. var model = new RegisterForInterestMvcModel();16. if (string.IsNullOrEmpty(this.Message))17. 18. model.Message = "Hello, World!";19. 20. else21. 22. model.Message = this.Message;23. 24. 25. return View("Default", model);26. 27. 28. [HttpPost]29. public ActionResult Index(RegisterForInterestMvcModel model)30. 31. //do stuff here32. 33. return View("Success", model);34. 35. The Default.cshtml and Success.html files are under the ~/Views/RegisterForInterestMvc folder in the solution.
Two issues occur:
The only way I can route to my success page is by changing the Post action to
1.[HttpPost]2.public ActionResult Index(RegisterForInterestMvcModel model)3.4. //do stuff here5. 6. return Redirect("~/Index/Success?"+queryStringBuilt);7.
Which results in a page url which is ugly mywebsite/.../success
How can I create more user friendly routes in Hybrid mode?
Hi Craig,
You can use an attribute like [ActionName("Success")] on any action to make it listen for that route value.
Another way to control what happens it to override the protected method called HandleUnknownAction and implement logic that decides what to render based on whatever action is requested.
Regards,
Boyko Karadzhov
Telerik
Thanks for the information it certainly helped on non home pages but the issue on the home page still persists with both suggestions.
When I click home from the navigation menu and then click submit the form posts to localhost:60876/Index and I get a 404
Hi Craig,
This is a known issue at our end and we already have it logged internally.
However, I made a feedback item for you in our feedback portal, so that you can track the issue yourself:
http://feedback.telerik.com/Project/153/Feedback/Details/131773-mvc-widget-that-performs-redirect-on-httppost-doesnt-work-if-you-access-the-hom
Let me know if I can be of further help to you.
Regards,
Svetoslav Petsov
Telerik