在了解MVC6中的区域处理故事时,I
keep
coming
across
blog
posts具有区域:存在于路由模式中,但无论我搜索多么困难,我在任何Microsoft文档中都找不到任何关于此的内容,以及我发现的所有博客文章都没有解释它正在做什么或提到那些信息的来源.
解释了这种约束的位置,以及内置路由模式和约束的全面,最新,规范文档在哪里?为了记录,我知道this页面,但它的结构更像是一个教程而不是规范参考.
如果微软的任何人正在阅读这篇文章,那么http://www.asp.net/mvc/overview/api-reference会导致一个页面旁边没有任何信息和一个未同步的目录,我找不到我想要的内容.并且您的RouteAttribute类引用没有指向任何解释url模式应该是什么样的内容的链接.
编辑
所以它与KnownRouteValueConstraint有关,这让我想到了这个:
https://github.com/aspnet/Mvc/blob/e0b8532735997c439e11fff68dd342d5af59f05f/src/Microsoft.AspNet.Mvc.Core/KnownRouteValueConstraint.cs#L26-L40
所以我猜这意味着约束只是确保捕获的值是非空的.我仍然不知道该信息的规范来源在哪里.
最佳答案 由于ASP.NET 5 / MVC 6是
not yet officially released,而且目前API尚未稳定,因此文档尚未完成也就不足为奇了.
请注意,ASP.NET vNext是开源的,因此缺少文档时,您可以始终查看测试以尝试确定要执行的操作.测试内联约束区域的Here are some:存在.
[Fact]
public async Task RoutingToANonExistantArea_WithExistConstraint_RoutesToCorrectAction()
{
// Arrange
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
var client = server.CreateClient();
// Act
var response = await client.GetAsync("http://localhost/area-exists/Users");
// Assert
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
var returnValue = await response.Content.ReadAsStringAsync();
Assert.Equal("Users.Index", returnValue);
}
[Fact]
public async Task RoutingToANonExistantArea_WithoutExistConstraint_RoutesToIncorrectAction()
{
// Arrange
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
var client = server.CreateClient();
// Act
var response = await client.GetAsync("http://localhost/area-withoutexists/Users");
// Assert
var exception = response.GetServerException();
Assert.Equal("The view 'Index' was not found." +
" The following locations were searched:__/Areas/Users/Views/Home/Index.cshtml__" +
"/Areas/Users/Views/Shared/Index.cshtml__/Views/Shared/Index.cshtml.",
exception.ExceptionMessage);
}