React to optional Razor directive token feature
This commit is contained in:
parent
9264f3aa2d
commit
f474d8bc52
|
|
@ -1,4 +1,4 @@
|
|||
@page Test
|
||||
@page
|
||||
@model TestModel
|
||||
|
||||
@functions {
|
||||
|
|
|
|||
|
|
@ -9,7 +9,11 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Host
|
|||
{
|
||||
public static class PageDirective
|
||||
{
|
||||
public static readonly DirectiveDescriptor DirectiveDescriptor = DirectiveDescriptorBuilder.Create("page").AddString().Build();
|
||||
public static readonly DirectiveDescriptor DirectiveDescriptor = DirectiveDescriptorBuilder
|
||||
.Create("page")
|
||||
.BeginOptionals()
|
||||
.AddString()
|
||||
.Build();
|
||||
|
||||
public static IRazorEngineBuilder Register(IRazorEngineBuilder builder)
|
||||
{
|
||||
|
|
@ -26,12 +30,12 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Host
|
|||
}
|
||||
|
||||
routeTemplate = visitor.RouteTemplate;
|
||||
return routeTemplate != null;
|
||||
return visitor.DirectiveNode != null;
|
||||
}
|
||||
|
||||
private class Visitor : RazorIRNodeWalker
|
||||
{
|
||||
public DirectiveIRNode DirectiveNode { get; private set; }
|
||||
public DirectiveIRNode DirectiveNode { get; private set; }
|
||||
|
||||
public string RouteTemplate { get; private set; }
|
||||
|
||||
|
|
@ -40,7 +44,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Host
|
|||
if (node.Descriptor == DirectiveDescriptor)
|
||||
{
|
||||
DirectiveNode = node;
|
||||
RouteTemplate = node.Tokens.First().Content;
|
||||
RouteTemplate = node.Tokens.FirstOrDefault()?.Content;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests
|
|||
public async Task RazorPages_ReturnSuccess()
|
||||
{
|
||||
// Arrange & Act
|
||||
var response = await Client.GetStringAsync("http://localhost/Pages/Test");
|
||||
var response = await Client.GetStringAsync("http://localhost/Pages/");
|
||||
|
||||
// Assert
|
||||
Assert.Contains("This file should give you a quick view of a Mvc Razor Page in action.", response);
|
||||
|
|
|
|||
Loading…
Reference in New Issue