Browse Source

Fixed URL Routing generation for Links.

Added Namespace routing extension.
master
Teknikode 7 years ago
parent
commit
d97e89d9d3
  1. 32
      Teknik/App_Start/SubdomainRouteExtension.cs
  2. 6
      Teknik/Areas/About/AboutAreaRegistration.cs
  3. 2
      Teknik/Areas/About/Controllers/AboutController.cs
  4. 2
      Teknik/Areas/About/Views/About/Index.cshtml
  5. 9
      Teknik/Areas/Home/HomeAreaRegistration.cs
  6. 16
      Teknik/Areas/Home/Views/Home/Index.cshtml
  7. 8
      Teknik/Configuration/Config.cs
  8. 30
      Teknik/Content/Images/logo-black-io.svg
  9. 23
      Teknik/Content/Images/logo-black.svg
  10. 30
      Teknik/Content/Images/logo-blue-io.svg
  11. 3
      Teknik/Teknik.csproj
  12. 2
      Teknik/Views/Profile/Login.cshtml
  13. 2
      Teknik/Views/Profile/Register.cshtml
  14. 8
      Teknik/Views/Shared/_LoginPartial.cshtml
  15. 24
      Teknik/Views/Shared/_Navbar.cshtml

32
Teknik/App_Start/SubdomainRouteExtension.cs

@ -18,6 +18,30 @@ namespace Teknik @@ -18,6 +18,30 @@ namespace Teknik
return route;
}
public static SubdomainRoute MapSubdomainRoute(this RouteCollection routes, string name, string subDomain, string url, object defaults, object constraints)
{
SubdomainRoute route = new SubdomainRoute(
subDomain,
url,
new RouteValueDictionary(defaults),
new RouteValueDictionary(constraints),
new MvcRouteHandler());
routes.Add(name, route);
return route;
}
public static SubdomainRoute MapSubdomainRoute(this RouteCollection routes, string name, string subDomain, string url, object defaults, string[] namespaces)
{
SubdomainRoute route = new SubdomainRoute(
subDomain,
url,
new RouteValueDictionary(defaults),
new RouteValueDictionary(namespaces),
new MvcRouteHandler());
routes.Add(name, route);
return route;
}
public static SubdomainRoute MapSubdomainRoute(this AreaRegistrationContext context, string name, string subDomain, string url, object defaults)
{
SubdomainRoute route = new SubdomainRoute(
@ -46,15 +70,17 @@ namespace Teknik @@ -46,15 +70,17 @@ namespace Teknik
return route;
}
public static SubdomainRoute MapSubdomainRoute(this RouteCollection routes, string name, string subDomain, string url, object defaults, object constraints)
public static SubdomainRoute MapSubdomainRoute(this AreaRegistrationContext context, string name, string subDomain, string url, object defaults, string[] namespaces)
{
SubdomainRoute route = new SubdomainRoute(
subDomain,
url,
new RouteValueDictionary(defaults),
new RouteValueDictionary(constraints),
new RouteValueDictionary(new {}),
new RouteValueDictionary(new { Area = context.AreaName, Namespaces = namespaces }),
new MvcRouteHandler());
routes.Add(name, route);
context.Routes.Add(name, route);
return route;
}
}

6
Teknik/Areas/About/AboutAreaRegistration.cs

@ -18,13 +18,15 @@ namespace Teknik.Areas.About @@ -18,13 +18,15 @@ namespace Teknik.Areas.About
"About_dev", // Route name
"dev",
"About/{controller}/{action}", // URL with parameters
new { area = "About", controller = "About", action = "Index" } // Parameter defaults
new { area = "About", controller = "About", action = "Index" }, // Parameter defaults
new[] { typeof(Controllers.AboutController).Namespace }
);
context.MapSubdomainRoute(
"About_default", // Route name
"about",
"{controller}/{action}", // URL with parameters
new { area = this.AreaName, controller = "About", action = "Index", username = UrlParameter.Optional, page = UrlParameter.Optional } // Parameter defaults
new { area = this.AreaName, controller = "About", action = "Index", username = UrlParameter.Optional, page = UrlParameter.Optional }, // Parameter defaults
new[] { typeof(Controllers.AboutController).Namespace }
);
}
}

2
Teknik/Areas/About/Controllers/AboutController.cs

@ -16,7 +16,7 @@ namespace Teknik.Areas.About.Controllers @@ -16,7 +16,7 @@ namespace Teknik.Areas.About.Controllers
ViewBag.Title = Config.Title + " - About";
ViewBag.Message = "Your application description page.";
return View(Config);
return View();
}
}
}

2
Teknik/Areas/About/Views/About/Index.cshtml

@ -45,7 +45,7 @@ @@ -45,7 +45,7 @@
<p>
<div class="input-group col-sm-6 col-sm-offset-3">
<span class="input-group-addon" id="basic-addon1">Bitcoin Address</span>
<input type="text" class="form-control" name="bitcoin_address" value="@Model.BitcoinAddress" readonly>
<input type="text" class="form-control" name="bitcoin_address" value="@ViewBag.Config.BitcoinAddress" readonly>
</div>
<br />
<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=MBG93VKQ343P4">

9
Teknik/Areas/Home/HomeAreaRegistration.cs

@ -19,19 +19,22 @@ namespace Teknik.Areas.Home @@ -19,19 +19,22 @@ namespace Teknik.Areas.Home
"Home_dev", // Route name
"dev",
"Home/{controller}/{action}", // URL with parameters
new { area = "Home", controller = "Home", action = "Index" } // Parameter defaults
new { area = "Home", controller = "Home", action = "Index" }, // Parameter defaults
new[] { typeof(Controllers.HomeController).Namespace }
);
context.MapSubdomainRoute(
"Home_subdomain", // Route name
"www",
"{controller}/{action}", // URL with parameters
new { area = this.AreaName, controller = "Home", action = "Index" } // Parameter defaults
new { area = this.AreaName, controller = "Home", action = "Index" }, // Parameter defaults
new[] { typeof(Controllers.HomeController).Namespace }
);
context.MapSubdomainRoute(
"Home_default", // Route name
null,
"{controller}/{action}", // URL with parameters
new { area = this.AreaName, controller = "Home", action = "Index" } // Parameter defaults
new { area = this.AreaName, controller = "Home", action = "Index" }, // Parameter defaults
new[] { typeof(Controllers.HomeController).Namespace }
);
//context.MapRoute(
// "Home_default",

16
Teknik/Areas/Home/Views/Home/Index.cshtml

@ -15,7 +15,7 @@ @@ -15,7 +15,7 @@
<br />
<div class="container">
<div class="row">
<a href="@Url.Action("Index", "Upload")">
<a href="@Url.Action("Index", "Upload", new { area = "Upload"})">
<div class="col-md-3 text-center">
<div class="thumbnail">
<br />
@ -26,7 +26,7 @@ @@ -26,7 +26,7 @@
</div>
</div>
</a>
<a href="@Url.Action("Index", "Paste")">
<a href="@Url.Action("Index", "Paste", new { area = "Paste"})">
<div class="col-md-3 text-center">
<div class="thumbnail">
<br />
@ -37,7 +37,7 @@ @@ -37,7 +37,7 @@
</div>
</div>
</a>
<a href="@Url.Action("Index", "Podcast")">
<a href="@Url.Action("Index", "Podcast", new { area = "Podcast"})">
<div class="col-md-3 text-center">
<div class="thumbnail">
<br />
@ -48,7 +48,7 @@ @@ -48,7 +48,7 @@
</div>
</div>
</a>
<a href="@Url.Action("Index", "Help")/#Mumble">
<a href="@Url.Action("Index", "Help", new { area = "Help"})/#Mumble">
<div class="col-md-3 text-center">
<div class="thumbnail">
<br />
@ -68,7 +68,7 @@ @@ -68,7 +68,7 @@
</div>
<br/>
<div class="row">
<a href="@Url.Action("Index", "Help")/#Mail">
<a href="@Url.Action("Index", "Help", new { area = "Help"})/#Mail">
<div class="col-md-3 text-center">
<div class="thumbnail">
<br/>
@ -79,7 +79,7 @@ @@ -79,7 +79,7 @@
</div>
</div>
</a>
<a href="@Url.Action("Index", "Git")">
<a href="@Url.Action("Index", "Git", new { area = "Git"})">
<div class="col-md-3 text-center">
<div class="thumbnail">
<br/>
@ -90,7 +90,7 @@ @@ -90,7 +90,7 @@
</div>
</div>
</a>
<a href="@Url.Action("Index", "Blog")">
<a href="@Url.Action("Index", "Blog", new { area = "Blog"})">
<div class="col-md-3 text-center">
<div class="thumbnail">
<br/>
@ -101,7 +101,7 @@ @@ -101,7 +101,7 @@
</div>
</div>
</a>
<a href="@Url.Action("Index", "Help")/#IRC">
<a href="@Url.Action("Index", "Help", new { area = "Help"})/#IRC">
<div class="col-md-3 text-center">
<div class="thumbnail">
<br/>

8
Teknik/Configuration/Config.cs

@ -58,8 +58,12 @@ namespace Teknik @@ -58,8 +58,12 @@ namespace Teknik
public static Config Load()
{
string configContents = File.ReadAllText(HttpContext.Current.Server.MapPath("~/App_Data/Config.json"));
Config config = Config.Deserialize(configContents);
Config config = new Config();
if (File.Exists(HttpContext.Current.Server.MapPath("~/App_Data/Config.json")))
{
string configContents = File.ReadAllText(HttpContext.Current.Server.MapPath("~/App_Data/Config.json"));
config = Config.Deserialize(configContents);
}
return config;
}
}

30
Teknik/Content/Images/logo-black-io.svg

@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="358.723px" height="72.131px" viewBox="0 0 358.723 72.131" enable-background="new 0 0 358.723 72.131"
xml:space="preserve">
<path fill="#231F20" d="M6.386,37.688c0-3.665-2.722-6.7-6.386-7.537V22.3h6.386V10.784h11.62V22.3h18.217v10.363h-22.09v3.561
c2.513,0.732,3.873,2.93,3.873,5.863v19.574h18.217v10.47H11.515c-2.616,0-5.129-2.198-5.129-5.235V37.688z"/>
<path fill="#231F20" d="M130.21,61.661L114.612,45.54l12.04-12.877h7.118V22.3h-8.689c-2.512,0-4.083,0.942-5.129,1.989
l-15.39,16.854h-2.407V5.13c0-2.512-2.199-5.13-5.13-5.13H84.147v10.47h6.386v51.191h-5.895h-0.596H50.317V49.729h4.188
c0.523,2.721,2.513,3.663,5.024,3.663h20.31c3.036,0,5.235-2.198,5.235-5.235V27.638c0-3.035-2.199-5.338-5.235-5.338H44.036
c-2.722,0-5.34,2.303-5.34,5.338v39.258c0,3.037,2.618,5.235,5.34,5.235h40.007h1.03h11.951c2.931,0,5.13-2.198,5.13-5.235V50.984
h3.035l17.798,19.263c1.569,1.465,3.036,1.884,5.024,1.884h5.758v-10.47H130.21z M50.317,32.663h23.135v10.365H50.317V32.663z"/>
<rect x="198.291" y="0.143" fill="#231F20" width="11.621" height="12.772"/>
<path fill="#231F20" d="M206.451,61.661v-3.453c2.617-0.629,3.873-2.722,3.873-4.816V27.638c0-3.035-2.305-5.338-5.131-5.338h-12.98
v10.363h6.49v24.184c0,3.559-2.512,3.635-6.49,4.682v10.603h24.602h12.982c2.932,0,5.129-2.198,5.129-5.235V50.984h3.035
l17.799,19.263c1.57,1.465,3.035,1.884,5.023,1.884h9.004v-10.47h-6.805l-15.6-16.121l12.041-12.877h7.119V22.3h-8.691
c-2.512,0-4.082,0.942-5.129,1.989l-15.389,16.854h-2.408V5.13c0-2.512-2.197-5.13-5.129-5.13H216.92v10.47h6.385v51.191"/>
<path fill="#231F20" d="M272.262,61.661h11.453v10.47h-11.453V61.661z"/>
<path fill="#231F20" d="M286.188,61.661c3.92-1.049,6.396-1.279,6.396-4.846V32.582h-6.396V22.196h12.793
c2.787,0,5.057,2.308,5.057,5.35v25.806c0,2.099-1.238,4.197-3.818,4.826v3.462h10.215v10.49h-24.246V61.661z"/>
<rect x="292.584" fill="#231F20" width="11.453" height="12.798"/>
<path fill="#231F20" d="M312.91,27.546c0-3.042,2.477-5.35,5.365-5.35h35.186c2.992,0,5.262,2.308,5.262,5.35v39.339
c0,3.042-2.27,5.245-5.262,5.245h-35.186c-2.889,0-5.365-2.203-5.365-5.245V27.546z M347.27,61.641V32.582h-22.906v29.059H347.27z"
/>
<path fill="#231F20" d="M183.248,61.661V27.638c0-3.035-2.721-5.338-5.547-5.338h-25.754l-4.71,7.747h-0.209v-2.514
c0-2.093-1.676-5.233-5.444-5.233l-5.34-0.135v10.498v21.59v2.594v15.284h18.217v-10.47h-10.469v-3.453
c2.617-0.629,3.873-2.722,3.873-4.816V40.2c0-4.396,3.455-7.537,7.852-7.537h15.912v34.232c0,3.037,2.408,5.235,5.235,5.235h12.876
v-10.47H183.248z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

23
Teknik/Content/Images/logo-black.svg

@ -0,0 +1,23 @@ @@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="263.292px" height="72.13px" viewBox="0 0 263.292 72.13" enable-background="new 0 0 263.292 72.13" xml:space="preserve">
<path d="M6.386,37.689c0-3.666-2.722-6.7-6.386-7.538V22.3h6.386V10.784h11.62V22.3h18.217v10.363h-22.09v3.561
c2.513,0.732,3.873,2.93,3.873,5.863v19.574h18.217V72.13H11.515c-2.616,0-5.129-2.197-5.129-5.234V37.689z"/>
<path d="M130.21,61.662l-15.599-16.121l12.04-12.877h7.118V22.3h-8.689c-2.512,0-4.083,0.942-5.129,1.989l-15.39,16.854h-2.407V5.13
c0-2.512-2.199-5.13-5.13-5.13H84.147v10.47h6.386v51.192h-5.895h-0.596H50.317V49.728h4.188c0.523,2.721,2.513,3.664,5.024,3.664
h20.31c3.036,0,5.235-2.199,5.235-5.236V27.638c0-3.035-2.199-5.338-5.235-5.338H44.036c-2.722,0-5.34,2.303-5.34,5.338v39.258
c0,3.037,2.618,5.234,5.34,5.234h40.007h1.03h11.951c2.931,0,5.13-2.197,5.13-5.234V50.984h3.035l17.798,19.264
c1.569,1.465,3.036,1.883,5.024,1.883h5.758V61.662H130.21z M50.317,32.663h23.135v10.366H50.317V32.663z"/>
<polygon points="203.416,0 196.745,0 191.794,0 191.794,12.772 203.416,12.772 "/>
<path d="M199.955,61.662v-3.453c2.617-0.629,3.873-2.723,3.873-4.816V27.638c0-3.035-2.304-5.338-5.13-5.338h-12.98v10.363h6.489
v24.184c0,3.559-2.512,3.635-6.489,4.682V72.13h24.602H223.3c2.932,0,5.13-2.197,5.13-5.234V50.984h3.035l17.798,19.264
c1.57,1.465,3.036,1.883,5.024,1.883h9.004V61.662h-6.805l-15.6-16.121l12.04-12.877h7.119V22.3h-8.69
c-2.512,0-4.082,0.942-5.129,1.989l-15.39,16.854h-2.407V5.13c0-2.512-2.198-5.13-5.13-5.13h-12.877v10.47h6.386v51.192"/>
<path d="M183.249,61.662V27.638c0-3.035-2.721-5.338-5.548-5.338h-25.754l-4.71,7.747h-0.209v-2.514
c0-2.093-1.676-5.233-5.444-5.233l-5.34-0.135v10.498v21.59v2.594V72.13h18.217V61.662h-10.469v-3.453
c2.617-0.629,3.873-2.723,3.873-4.816V40.201c0-4.396,3.455-7.538,7.852-7.538h15.912v34.233c0,1.289,0.435,2.428,1.151,3.311
c0.97,1.197,2.458,1.924,4.084,1.924h6.381L183.249,61.662L183.249,61.662z"/>
<rect x="171.628" y="54.419" width="11.62" height="6.25"/>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

30
Teknik/Content/Images/logo-blue-io.svg

@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="358.722px" height="72.131px" viewBox="0 0 358.722 72.131" enable-background="new 0 0 358.722 72.131"
xml:space="preserve">
<path fill="#418BCA" d="M6.386,37.688c0-3.665-2.722-6.7-6.386-7.537V22.3h6.386V10.784h11.62V22.3h18.217v10.363h-22.09v3.561
c2.513,0.732,3.873,2.93,3.873,5.863v19.574h18.217v10.47H11.515c-2.616,0-5.129-2.198-5.129-5.235V37.688z"/>
<path fill="#418BCA" d="M130.21,61.661L114.612,45.54l12.04-12.877h7.118V22.3h-8.689c-2.512,0-4.083,0.942-5.129,1.989
l-15.39,16.854h-2.407V5.13c0-2.512-2.199-5.13-5.13-5.13H84.147v10.47h6.386v51.191h-5.895h-0.596H50.317V49.729h4.188
c0.523,2.721,2.513,3.663,5.024,3.663h20.31c3.036,0,5.235-2.198,5.235-5.235V27.638c0-3.035-2.199-5.338-5.235-5.338H44.036
c-2.722,0-5.34,2.303-5.34,5.338v39.258c0,3.037,2.618,5.235,5.34,5.235h40.007h1.03h11.951c2.931,0,5.13-2.198,5.13-5.235V50.984
h3.035l17.798,19.263c1.569,1.465,3.036,1.884,5.024,1.884h5.758v-10.47H130.21z M50.317,32.663h23.135v10.365H50.317V32.663z"/>
<rect x="198.291" y="0.143" fill="#418BCA" width="11.621" height="12.772"/>
<path fill="#418BCA" d="M206.451,61.661v-3.453c2.617-0.629,3.873-2.722,3.873-4.816V27.638c0-3.035-2.304-5.338-5.13-5.338h-12.98
v10.363h6.489v24.184c0,3.559-2.512,3.635-6.489,4.682v10.603h24.602h12.981c2.932,0,5.13-2.198,5.13-5.235V50.984h3.035
l17.798,19.263c1.57,1.465,3.036,1.884,5.024,1.884h9.004v-10.47h-6.805l-15.6-16.121l12.04-12.877h7.119V22.3h-8.69
c-2.512,0-4.082,0.942-5.129,1.989l-15.39,16.854h-2.407V5.13c0-2.512-2.198-5.13-5.13-5.13h-12.877v10.47h6.386v51.191"/>
<path fill="#418BCA" d="M272.261,61.661h11.453v10.47h-11.453V61.661z"/>
<path fill="#418BCA" d="M286.187,61.661c3.92-1.049,6.396-1.279,6.396-4.846V32.582h-6.396V22.196h12.794
c2.786,0,5.056,2.308,5.056,5.35v25.806c0,2.099-1.238,4.197-3.817,4.826v3.462h10.215v10.49h-24.247V61.661z"/>
<rect x="292.583" fill="#418BCA" width="11.453" height="12.798"/>
<path fill="#418BCA" d="M312.911,27.546c0-3.042,2.477-5.35,5.365-5.35h35.185c2.992,0,5.262,2.308,5.262,5.35v39.339
c0,3.042-2.27,5.245-5.262,5.245h-35.185c-2.889,0-5.365-2.203-5.365-5.245V27.546z M347.269,61.641V32.582h-22.905v29.059H347.269z
"/>
<path fill="#418BCA" d="M183.249,61.661V27.638c0-3.035-2.721-5.338-5.548-5.338h-25.754l-4.71,7.747h-0.209v-2.514
c0-2.093-1.676-5.233-5.444-5.233l-5.34-0.135v10.498v21.59v2.594v15.284h18.217v-10.47h-10.469v-3.453
c2.617-0.629,3.873-2.722,3.873-4.816V40.2c0-4.396,3.455-7.537,7.852-7.537h15.912v34.232c0,3.037,2.408,5.235,5.235,5.235h12.876
v-10.47H183.249z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

3
Teknik/Teknik.csproj

@ -169,6 +169,9 @@ @@ -169,6 +169,9 @@
<Content Include="Content\CSS\font-awesome.css" />
<Content Include="Content\CSS\font-awesome.min.css" />
<Content Include="Content\Images\favicon.ico" />
<Content Include="Content\Images\logo-black-io.svg" />
<Content Include="Content\Images\logo-black.svg" />
<Content Include="Content\Images\logo-blue-io.svg" />
<Content Include="Content\Images\logo-blue.svg" />
<Content Include="Content\fonts\fontawesome-webfont.svg" />
<Content Include="Content\fonts\glyphicons-halflings-regular.svg" />

2
Teknik/Views/Profile/Login.cshtml

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
@model Teknik.ViewModels.LoginViewModel
<form role="form" id="loginForm" action="@Url.Action("Login", "Profile")" method="post" accept-charset="UTF-8">
<form role="form" id="loginForm" action="@Url.Action("Login", "Profile", new { area = "Home" })" method="post" accept-charset="UTF-8">
@Html.ValidationSummary(true, "Login failed. Check your login details.")
<div class="form-group">
<input type="text" class="form-control" id="Username" value="" placeholder="Username" name="Username" data-val-required="The Username field is required." data-val="true" />

2
Teknik/Views/Profile/Register.cshtml

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
@model Teknik.ViewModels.RegisterViewModel
<form role="form" id="registrationForm" action="@Url.Action("Register", "Profile")" method="post" accept-charset="UTF-8">
<form role="form" id="registrationForm" action="@Url.Action("Register", "Profile", new { area = "Profile" })" method="post" accept-charset="UTF-8">
@Html.ValidationSummary(true, "Registration failed. Check your registration details.")
<div class="form-group">
<input type="text" class="form-control" id="Username" value="" placeholder="Username" name="Username" data-val-required="The Username field is required." data-val="true"/>

8
Teknik/Views/Shared/_LoginPartial.cshtml

@ -7,19 +7,19 @@ @@ -7,19 +7,19 @@
<a href="#" id="user_menu" class="dropdown-toggle" data-toggle="dropdown">@User.Identity.Name <strong class="caret"></strong></a>
<ul class="dropdown-menu" role="menu" aria-labelledby="user_menu">
<li>
<a href="@Url.Action("Index", "Profile")/@User.Identity.Name">Profile</a>
<a href="@Url.Action("Index", "Profile", new { area = "Profile" })/@User.Identity.Name">Profile</a>
</li>
<li>
<a href="@Url.Action("Index", "Blog")/@User.Identity.Name">Blog</a>
<a href="@Url.Action("Index", "Blog", new { area = "Blog" })/@User.Identity.Name">Blog</a>
</li>
if (User.Identity.Group == Groups.Founder)
{
<li>
<a href="@Url.Action("Index", "Admin")">Administration</a>
<a href="@Url.Action("Index", "Admin", new { area = "Admin" })">Administration</a>
</li>
}
<li>
@Html.ActionLink("Sign Out", "Logout", "Profile")
@Html.ActionLink("Sign Out", "Logout", "Profile", new { area = "Profile" })
</li>
</ul>
</li>

24
Teknik/Views/Shared/_Navbar.cshtml

@ -7,50 +7,50 @@ @@ -7,50 +7,50 @@
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="@Url.Action("Index", "Home")"><img src="/Content/Images/logo-blue.svg" height="20" alt="Teknik"></a>
<a class="navbar-brand" href="@Url.Action("Index", "Home", new { area = "Home" })"><img src="/Content/Images/logo-black.svg" height="20" alt="Teknik"></a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a href="@Url.Action("Index", "Home")">Home</a></li>
<li><a href="@Url.Action("About", "Home")">About</a></li>
<li><a href="@Url.Action("Index", "Home", new { area = "Home" })">Home</a></li>
<li><a href="@Url.Action("Index", "About", new { area = "About" })">About</a></li>
<li class="divider-vertical"></li>
<li class="dropdown">
<a href="#" id="services_menu" class="dropdown-toggle" data-toggle="dropdown">Services <strong class="caret"></strong></a>
<ul class="dropdown-menu" role="menu" aria-labelledby="services_menu">
<li>
<a href="@Url.Action("Index", "Blog")">Blog</a>
<a href="@Url.Action("Index", "Blog", new { area = "Blog" })">Blog</a>
</li>
<li>
<a href="@Url.Action("Index", "Podcast")">Podcast</a>
<a href="@Url.Action("Index", "Podcast", new { area = "Podcast" })">Podcast</a>
</li>
<li class="divider"></li>
<li>
<a href="@Url.Action("Index", "Upload")">Upload</a>
<a href="@Url.Action("Index", "Upload", new { area = "Upload" })">Upload</a>
</li>
<li>
<a href="@Url.Action("Index", "Paste")">Paste</a>
<a href="@Url.Action("Index", "Paste", new { area = "Paste" })">Paste</a>
</li>
<li>
<a href="@Url.Action("Index", "Git")">Git</a>
<a href="@Url.Action("Index", "Git", new { area = "Git" })">Git</a>
</li>
<li>
<a href="@Url.Action("Index", "Mail")" target="_blank">Mail</a>
<a href="@Url.Action("Index", "Mail", new { area = "Mail" })" target="_blank">Mail</a>
</li>
<li>
<a href="mumble://mumble.@(ViewBag.Config.Host):64738/?version=1.2.5" target="_blank">Mumble</a>
</li>
<li class="divider"></li>
<li>
<a href="@Url.Action("Index", "Ricehalla")">Ricehalla</a>
<a href="@Url.Action("Index", "Ricehalla", new { area = "Ricehalla" })">Ricehalla</a>
</li>
</ul>
</li>
<li>
<a href="@Url.Action("Index", "Contact")">Contact</a>
<a href="@Url.Action("Index", "Contact", new { area = "Contact" })">Contact</a>
</li>
<li>
<a href="@Url.Action("Index", "Help")">Help</a>
<a href="@Url.Action("Index", "Help", new { area = "Help" })">Help</a>
</li>
</ul>
@Html.Partial("_LoginPartial")

Loading…
Cancel
Save