c# - Call ActionResult in the Area controller from a shared view -


from layout.cshtml inside views folder (outside areas), need resolve action method of controller created inside area.

i have few custom routes defined, default route always:

routes.maproute("default", "{controller}/{action}/{id}",                new { controller = "home", action = "index", id = urlparameter.optional }); 

eg:

area - test, controller - homecontroller, action method - index

@url.action("index", "home", new { area = "test" }) returns empty string. @html.actionlink("test link", "index", "home") returns empty string.

@html.routelink("test link", "default", new { controller = "home", action = "index" }) returns in error

a route named 'default' not found in route collection.

just clarify, action doesn't need invoked using custom route. never directly accessible via url, default route should fine.

i bummed. how can resolve action?

under same namespace add following class

public class testarearegistration : arearegistration {     public override string areaname     {                 {             return "test";         }     }      public override void registerarea(arearegistrationcontext context)     {         context.maproute(             "test_default",             "test/{controller}/{action}/{id}",             new { action = "index", id = urlparameter.optional }         );     } } 

under global.asax make sure have registerallareas()

protected void application_start()     {         arearegistration.registerallareas();                 } 

Comments

Popular posts from this blog

Is there a better way to structure post methods in Class Based Views -

reflection - How to access the object-members of an object declaration in kotlin -

php - Doctrine Query Builder Error on Join: [Syntax Error] line 0, col 87: Error: Expected Literal, got 'JOIN' -