2014-12-02 29 views
7

我有一个ASP.NET vNext(5)项目。我正在尝试在项目中添加两个区域。我的问题是,如何在vNext中注册区域? System.Web.Mvc命名空间消失了,这是AreaRegistrationContext的位置。我开始在GitHub上查看MVC源代码。我找到了Area attribute。但是,我不知道现在如何使用它。在ASP.NET 5中使用区域

有人可以向我解释(或提供链接)如何使用ASP.NET vNext中的区域?

谢谢!

回答

5

在vNext中注册并配置您将在Startup.cs中使用的服务。区域路线像普通路线一样添加。这里有一个例子:https://github.com/aspnet/Mvc/blob/dev/samples/MvcSample.Web/Startup.cs

你可以为一个区域添加一个MVC的路线是这样的:

app.UseMvc(routes => 
{ 
    routes.MapRoute("areaRoute", "{area:exists}/{controller}/{action}"); 
}); 

或者你可以使用一个路由属性是这样的:[Route("[area]/Home")]

[区域]属性装饰该地区的控制器。它只需要一个参数,即区域的名称。这里有一个例子:https://github.com/aspnet/Mvc/blob/dev/samples/MvcSample.Web/Areas/Travel/Controllers/HomeController.cs

[Area("Travel")] 
public class HomeController : Controller 
{ //... } 
+0

GitHub的链接似乎被打破 – eiu165 2016-01-06 16:28:15

+1

Startup.cs:https://github.com/aspnet/Mvc/blob/a420af67b72e470b9481d6b2eca29f7c7c2254d2/samples/MvcSample.Web/Startup.cs和HomeController的.cs:https://github.com/aspnet/Mvc/blob/a420af67b72e470b9481d6b2eca29f7c7c2254d2/samples/MvcSample.Web/Areas/Travel/Controllers/HomeController.cs(来自git历史记录) – 2016-01-06 20:26:52