ASP.NET MVC Areas with shared layout

22,307

Simply specify a blank area for them if they are to be served from root controllers:

<li>@Html.ActionLink("About Us", "About", "Home", new { area = "" }, null)</li>
Share:
22,307
Kamyar
Author by

Kamyar

Currently a Senior Engineer at Claimsforce

Updated on March 07, 2020

Comments

  • Kamyar
    Kamyar about 4 years

    I have defined an area (Admin) in my ASP.NET MVC 3 application, created _ViewStart.cshtml in that area and addedLayout = "~/Views/Shared/_Layout.cshtml"; to it to have a unified site layout.

    I also added the following code to _Layout.cshtml:

    if (HttpContext.Current.User.IsInRole("Admin"))
    {
        <li>@Html.ActionLink("Items List", "Index", "Items", new { area = "Admin" }, null)</li>
    }
    

    The Admin area is displayed properly having _Layout.cshtml as its layout. But all the navigation links in the page now point to Admin subfolder.

    For example in my layout I have <li>@Html.ActionLink("About Us", "About", "Home")</li>, which points to Mysite/Home/About. But after clicking the admin link, the "About Us" link points to /Admin/Home/About.

    What should I do to have _Layout.cshtml links pointing to the right address?
    Thanks.