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
|
@model TestModel
|
||||||
|
|
||||||
@functions {
|
@functions {
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,11 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Host
|
||||||
{
|
{
|
||||||
public static class PageDirective
|
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)
|
public static IRazorEngineBuilder Register(IRazorEngineBuilder builder)
|
||||||
{
|
{
|
||||||
|
|
@ -26,12 +30,12 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Host
|
||||||
}
|
}
|
||||||
|
|
||||||
routeTemplate = visitor.RouteTemplate;
|
routeTemplate = visitor.RouteTemplate;
|
||||||
return routeTemplate != null;
|
return visitor.DirectiveNode != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private class Visitor : RazorIRNodeWalker
|
private class Visitor : RazorIRNodeWalker
|
||||||
{
|
{
|
||||||
public DirectiveIRNode DirectiveNode { get; private set; }
|
public DirectiveIRNode DirectiveNode { get; private set; }
|
||||||
|
|
||||||
public string RouteTemplate { get; private set; }
|
public string RouteTemplate { get; private set; }
|
||||||
|
|
||||||
|
|
@ -40,7 +44,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Host
|
||||||
if (node.Descriptor == DirectiveDescriptor)
|
if (node.Descriptor == DirectiveDescriptor)
|
||||||
{
|
{
|
||||||
DirectiveNode = node;
|
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()
|
public async Task RazorPages_ReturnSuccess()
|
||||||
{
|
{
|
||||||
// Arrange & Act
|
// Arrange & Act
|
||||||
var response = await Client.GetStringAsync("http://localhost/Pages/Test");
|
var response = await Client.GetStringAsync("http://localhost/Pages/");
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Contains("This file should give you a quick view of a Mvc Razor Page in action.", response);
|
Assert.Contains("This file should give you a quick view of a Mvc Razor Page in action.", response);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue