Browse Source

Fixed URL Routing generation for Links.

Added Namespace routing extension.
tags/2.0.3
Teknikode 4 years ago
parent
commit
d97e89d9d3

+ 29
- 3
Teknik/App_Start/SubdomainRouteExtension.cs View File

@@ -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
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;
}
}

+ 4
- 2
Teknik/Areas/About/AboutAreaRegistration.cs View File

@@ -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 }
);
}
}

+ 1
- 1
Teknik/Areas/About/Controllers/AboutController.cs View File

@@ -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();
}
}
}

+ 1
- 1
Teknik/Areas/About/Views/About/Index.cshtml View File

@@ -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">

+ 6
- 3
Teknik/Areas/Home/HomeAreaRegistration.cs View File

@@ -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",

+ 8
- 8
Teknik/Areas/Home/Views/Home/Index.cshtml View File

@@ -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 @@
</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 @@
</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 @@
</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 @@
</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 @@
</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 @@
</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 @@
</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/>

+ 6
- 2
Teknik/Configuration/Config.cs View File

@@ -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
- 0
Teknik/Content/Images/logo-black-io.svg View File

@@ -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>

+ 23
- 0
Teknik/Content/Images/logo-black.svg View File

@@ -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>

+ 30
- 0
Teknik/Content/Images/logo-blue-io.svg View File

@@ -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>

+ 3
- 0
Teknik/Teknik.csproj View File

@@ -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" />

+ 1
- 1
Teknik/Views/Profile/Login.cshtml View File

@@ -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" />

+ 1
- 1
Teknik/Views/Profile/Register.cshtml View File

@@ -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"/>

+ 4
- 4
Teknik/Views/Shared/_LoginPartial.cshtml View File

@@ -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>

+ 12
- 12
Teknik/Views/Shared/_Navbar.cshtml View File

@@ -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