asp.net - ASP.NET MVC5+ 中 "exists"路由约束的文档在哪里?

标签 asp.net asp.net-mvc asp.net-mvc-5 asp.net-mvc-routing

在学习MVC6中区域处理的故事时,我keep coming across blog postsarea:exists在路线模式中,但无论我如何努力搜索,我都无法在任何 Microsoft 文档中找到有关此内容的任何内容,而且我找到的博客文章都没有解释它在做什么或提到这些信息的来源从。

这个约束在哪里解释,内置路径模式和约束的全面的、最新的、规范的文档在哪里?作为记录,我知道 this页面,但它的结构更像是教程而不是规范引用。

如果来自 Microsoft 的任何人正在阅读本文,http://www.asp.net/mvc/overview/api-reference导致页面几乎没有信息和未同步的目录,我无法在其中找到我想要的内容。还有您的 RouteAttribute类引用没有任何链接来解释 url 模式应该是什么样子。

编辑

所以经过一些更深入的挖掘,我发现了这个:
https://github.com/aspnet/Mvc/blob/48bfdceea6d243c5ec8d6e00f450f8fe7cce59f7/src/Microsoft.AspNet.Mvc.Core/MvcCoreRouteOptionsSetup.cs#L26

所以它与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测试内联约束 area:exists .

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

关于asp.net - ASP.NET MVC5+ 中 "exists"路由约束的文档在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32294527/

相关文章:

c# - Entity Framework - MVC - 将从模型中的数据库请求的数据类型(POCO 对象)转换为 View 中使用的业务对象

c# - 快速而肮脏的 GridView 不起作用

c# - 如何使用户能够从 ASP.NET MVC 发送电子邮件?

javascript - 如何从 JavaScript 中的 Razor 模型对象获取 JSON 对象

asp.net - ASP.NET Web 服务的 SQL Server Express 后端

asp.net - 如何在使用 VB 6.0 从 ASPX 页面调用的 IIS 7.0(Windows Server 2008 R2) 中调试 Com dll(通过 Interop 访问)

c# - 如何在 asp.net 中显示多个图像 tiff 文件?

c# - 用户控件和复合 Web 服务器控件

c# - 比较属性的自定义错误消息不起作用

c# - 服务器和客户端验证差异增加了额外的跨度