parent
a04f5cba9a
commit
60d600dd5c
|
|
@ -21,7 +21,6 @@ namespace Microsoft.AspNetCore.Mvc.Razor
|
||||||
public class MvcRazorParser : RazorParser
|
public class MvcRazorParser : RazorParser
|
||||||
{
|
{
|
||||||
private readonly IEnumerable<TagHelperDirectiveDescriptor> _viewImportsDirectiveDescriptors;
|
private readonly IEnumerable<TagHelperDirectiveDescriptor> _viewImportsDirectiveDescriptors;
|
||||||
private readonly string _modelExpressionTypeName;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Initializes a new instance of <see cref="MvcRazorParser"/>.
|
/// Initializes a new instance of <see cref="MvcRazorParser"/>.
|
||||||
|
|
@ -63,8 +62,6 @@ namespace Microsoft.AspNetCore.Mvc.Razor
|
||||||
_viewImportsDirectiveDescriptors = GetTagHelperDirectiveDescriptors(
|
_viewImportsDirectiveDescriptors = GetTagHelperDirectiveDescriptors(
|
||||||
inheritedChunkTrees,
|
inheritedChunkTrees,
|
||||||
defaultInheritedChunks);
|
defaultInheritedChunks);
|
||||||
|
|
||||||
_modelExpressionTypeName = modelExpressionTypeName;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
|
@ -87,29 +84,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor
|
||||||
_viewImportsDirectiveDescriptors,
|
_viewImportsDirectiveDescriptors,
|
||||||
errorSink);
|
errorSink);
|
||||||
|
|
||||||
var descriptors = visitor.GetDescriptors(documentRoot);
|
return visitor.GetDescriptors(documentRoot);
|
||||||
foreach (var descriptor in descriptors)
|
|
||||||
{
|
|
||||||
foreach (var attributeDescriptor in descriptor.Attributes)
|
|
||||||
{
|
|
||||||
if (attributeDescriptor.IsIndexer &&
|
|
||||||
string.Equals(
|
|
||||||
attributeDescriptor.TypeName,
|
|
||||||
_modelExpressionTypeName,
|
|
||||||
StringComparison.Ordinal))
|
|
||||||
{
|
|
||||||
errorSink.OnError(
|
|
||||||
SourceLocation.Undefined,
|
|
||||||
Resources.FormatMvcRazorParser_InvalidPropertyType(
|
|
||||||
descriptor.TypeName,
|
|
||||||
attributeDescriptor.Name,
|
|
||||||
_modelExpressionTypeName),
|
|
||||||
length: 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return descriptors;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static IEnumerable<TagHelperDirectiveDescriptor> GetTagHelperDirectiveDescriptors(
|
private static IEnumerable<TagHelperDirectiveDescriptor> GetTagHelperDirectiveDescriptors(
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,11 @@
|
||||||
<br /><p><em>Rendering Template:</em></p>
|
<br /><p><em>Rendering Template:</em></p>
|
||||||
<div><h3 style="font-family: cursive;">Tag Cloud from Template: </h3>Lorem,ipsum,dolor,sit,amet,consectetur,adipisicing,elit,sed,do,eiusmod,tempor,incididunt,ut,labore,et,dolore,magna,aliquaUt,enim</div></div>
|
<div><h3 style="font-family: cursive;">Tag Cloud from Template: </h3>Lorem,ipsum,dolor,sit,amet,consectetur,adipisicing,elit,sed,do,eiusmod,tempor,incididunt,ut,labore,et,dolore,magna,aliquaUt,enim</div></div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h3 style="font-family: cursive;">Dictionary Valued Model Expression</h3>
|
||||||
|
<div><ul><li>TagsToShow</li><li>Version.Build</li></ul></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<hr />
|
<hr />
|
||||||
<footer>
|
<footer>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Microsoft.AspNetCore.Mvc.ViewFeatures;
|
||||||
|
using Microsoft.AspNetCore.Razor.TagHelpers;
|
||||||
|
|
||||||
|
namespace Microsoft.AspNetCore.Mvc.Razor
|
||||||
|
{
|
||||||
|
[HtmlTargetElement(Attributes = "prefix-*")]
|
||||||
|
public class DictionaryPrefixTestTagHelper : TagHelper
|
||||||
|
{
|
||||||
|
[HtmlAttributeName(DictionaryAttributePrefix = "prefix-")]
|
||||||
|
public IDictionary<string, ModelExpression> PrefixValues { get; set; } = new Dictionary<string, ModelExpression>();
|
||||||
|
|
||||||
|
public override void Process(TagHelperContext context, TagHelperOutput output)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -46,7 +46,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Host.Test.Internal
|
||||||
var resultOutput = writer.GenerateCode();
|
var resultOutput = writer.GenerateCode();
|
||||||
|
|
||||||
#if GENERATE_BASELINES
|
#if GENERATE_BASELINES
|
||||||
if (!string.Equals(expectedOutput, resultOutput, StringComparison.Ordinal))
|
if (!string.Equals(expectedOutput, resultOutput, System.StringComparison.Ordinal))
|
||||||
{
|
{
|
||||||
ResourceFile.UpdateFile(assembly, path, expectedOutput, resultOutput);
|
ResourceFile.UpdateFile(assembly, path, expectedOutput, resultOutput);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -142,30 +142,62 @@ namespace Microsoft.AspNetCore.Mvc.Razor
|
||||||
generatedLineIndex: 17,
|
generatedLineIndex: 17,
|
||||||
generatedCharacterIndex: 48,
|
generatedCharacterIndex: 48,
|
||||||
contentLength: 91),
|
contentLength: 91),
|
||||||
|
BuildLineMapping(
|
||||||
|
documentAbsoluteIndex: 140,
|
||||||
|
documentLineIndex: 3,
|
||||||
|
documentCharacterIndex: 14,
|
||||||
|
generatedAbsoluteIndex: 797,
|
||||||
|
generatedLineIndex: 18,
|
||||||
|
generatedCharacterIndex: 48,
|
||||||
|
contentLength: 102),
|
||||||
BuildLineMapping(
|
BuildLineMapping(
|
||||||
documentAbsoluteIndex: 7,
|
documentAbsoluteIndex: 7,
|
||||||
documentLineIndex: 0,
|
documentLineIndex: 0,
|
||||||
documentCharacterIndex: 7,
|
documentCharacterIndex: 7,
|
||||||
generatedAbsoluteIndex: 836,
|
generatedAbsoluteIndex: 990,
|
||||||
generatedLineIndex: 19,
|
generatedLineIndex: 20,
|
||||||
generatedCharacterIndex: 28,
|
generatedCharacterIndex: 28,
|
||||||
contentLength: 8),
|
contentLength: 8),
|
||||||
BuildLineMapping(
|
BuildLineMapping(
|
||||||
documentAbsoluteIndex: 145,
|
documentAbsoluteIndex: 263,
|
||||||
documentLineIndex: 4,
|
documentLineIndex: 5,
|
||||||
documentCharacterIndex: 17,
|
documentCharacterIndex: 17,
|
||||||
generatedAbsoluteIndex: 2530,
|
generatedAbsoluteIndex: 2841,
|
||||||
generatedLineIndex: 50,
|
generatedLineIndex: 52,
|
||||||
generatedCharacterIndex: 133,
|
generatedCharacterIndex: 133,
|
||||||
contentLength: 3),
|
contentLength: 3),
|
||||||
BuildLineMapping(
|
BuildLineMapping(
|
||||||
documentAbsoluteIndex: 172,
|
documentAbsoluteIndex: 290,
|
||||||
documentLineIndex: 5,
|
documentLineIndex: 6,
|
||||||
documentCharacterIndex: 18,
|
documentCharacterIndex: 18,
|
||||||
generatedAbsoluteIndex: 2897,
|
generatedAbsoluteIndex: 3208,
|
||||||
generatedLineIndex: 56,
|
generatedLineIndex: 58,
|
||||||
generatedCharacterIndex: 125,
|
generatedCharacterIndex: 125,
|
||||||
contentLength: 5),
|
contentLength: 5),
|
||||||
|
BuildLineMapping(
|
||||||
|
documentAbsoluteIndex: 322,
|
||||||
|
documentLineIndex: 8,
|
||||||
|
documentCharacterIndex: 19,
|
||||||
|
generatedAbsoluteIndex: 3627,
|
||||||
|
generatedLineIndex: 64,
|
||||||
|
generatedCharacterIndex: 153,
|
||||||
|
contentLength: 5),
|
||||||
|
BuildLineMapping(
|
||||||
|
documentAbsoluteIndex: 357,
|
||||||
|
documentLineIndex: 9,
|
||||||
|
documentCharacterIndex: 19,
|
||||||
|
generatedAbsoluteIndex: 4055,
|
||||||
|
generatedLineIndex: 70,
|
||||||
|
generatedCharacterIndex: 161,
|
||||||
|
contentLength: 4),
|
||||||
|
BuildLineMapping(
|
||||||
|
documentAbsoluteIndex: 378,
|
||||||
|
documentLineIndex: 9,
|
||||||
|
documentCharacterIndex: 40,
|
||||||
|
generatedAbsoluteIndex: 4317,
|
||||||
|
generatedLineIndex: 75,
|
||||||
|
generatedCharacterIndex: 163,
|
||||||
|
contentLength: 6),
|
||||||
};
|
};
|
||||||
|
|
||||||
// Act and Assert
|
// Act and Assert
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,10 @@
|
||||||
@model DateTime
|
@model DateTime
|
||||||
|
|
||||||
@addTagHelper Microsoft.AspNetCore.Mvc.Razor.InputTestTagHelper, Microsoft.AspNetCore.Mvc.Razor.Host.Test
|
@addTagHelper Microsoft.AspNetCore.Mvc.Razor.InputTestTagHelper, Microsoft.AspNetCore.Mvc.Razor.Host.Test
|
||||||
|
@addTagHelper Microsoft.AspNetCore.Mvc.Razor.DictionaryPrefixTestTagHelper, Microsoft.AspNetCore.Mvc.Razor.Host.Test
|
||||||
|
|
||||||
<input-test for="Now" />
|
<input-test for="Now" />
|
||||||
<input-test for="@Model" />
|
<input-test for="@Model" />
|
||||||
|
|
||||||
|
<div prefix-test="@Model" ></div>
|
||||||
|
<span prefix-hour="Hour" prefix-minute="Minute"></span>
|
||||||
|
|
@ -16,6 +16,7 @@ namespace AspNetCore
|
||||||
#pragma warning disable 219
|
#pragma warning disable 219
|
||||||
string __tagHelperDirectiveSyntaxHelper = null;
|
string __tagHelperDirectiveSyntaxHelper = null;
|
||||||
__tagHelperDirectiveSyntaxHelper = "Microsoft.AspNetCore.Mvc.Razor.InputTestTagHelper, Microsoft.AspNetCore.Mvc.Razor.Host.Test";
|
__tagHelperDirectiveSyntaxHelper = "Microsoft.AspNetCore.Mvc.Razor.InputTestTagHelper, Microsoft.AspNetCore.Mvc.Razor.Host.Test";
|
||||||
|
__tagHelperDirectiveSyntaxHelper = "Microsoft.AspNetCore.Mvc.Razor.DictionaryPrefixTestTagHelper, Microsoft.AspNetCore.Mvc.Razor.Host.Test";
|
||||||
#line 1 "testfiles/input/modelexpressiontaghelper.cshtml"
|
#line 1 "testfiles/input/modelexpressiontaghelper.cshtml"
|
||||||
var __modelHelper = default(DateTime);
|
var __modelHelper = default(DateTime);
|
||||||
|
|
||||||
|
|
@ -25,6 +26,7 @@ var __modelHelper = default(DateTime);
|
||||||
}
|
}
|
||||||
#line hidden
|
#line hidden
|
||||||
private global::Microsoft.AspNetCore.Mvc.Razor.InputTestTagHelper __Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper = null;
|
private global::Microsoft.AspNetCore.Mvc.Razor.InputTestTagHelper __Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper = null;
|
||||||
|
private global::Microsoft.AspNetCore.Mvc.Razor.DictionaryPrefixTestTagHelper __Microsoft_AspNetCore_Mvc_Razor_DictionaryPrefixTestTagHelper = null;
|
||||||
#line hidden
|
#line hidden
|
||||||
public testfiles_input_modelexpressiontaghelper_cshtml()
|
public testfiles_input_modelexpressiontaghelper_cshtml()
|
||||||
{
|
{
|
||||||
|
|
@ -47,15 +49,32 @@ var __modelHelper = default(DateTime);
|
||||||
public override async Task ExecuteAsync()
|
public override async Task ExecuteAsync()
|
||||||
{
|
{
|
||||||
__Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.InputTestTagHelper>();
|
__Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.InputTestTagHelper>();
|
||||||
#line 5 "testfiles/input/modelexpressiontaghelper.cshtml"
|
#line 6 "testfiles/input/modelexpressiontaghelper.cshtml"
|
||||||
__Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper.For = ModelExpressionProvider.CreateModelExpression(ViewData, __model => __model.Now);
|
__Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper.For = ModelExpressionProvider.CreateModelExpression(ViewData, __model => __model.Now);
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
#line hidden
|
#line hidden
|
||||||
__Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.InputTestTagHelper>();
|
__Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.InputTestTagHelper>();
|
||||||
#line 6 "testfiles/input/modelexpressiontaghelper.cshtml"
|
#line 7 "testfiles/input/modelexpressiontaghelper.cshtml"
|
||||||
__Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper.For = ModelExpressionProvider.CreateModelExpression(ViewData, __model => Model);
|
__Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper.For = ModelExpressionProvider.CreateModelExpression(ViewData, __model => Model);
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
__Microsoft_AspNetCore_Mvc_Razor_DictionaryPrefixTestTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.DictionaryPrefixTestTagHelper>();
|
||||||
|
#line 9 "testfiles/input/modelexpressiontaghelper.cshtml"
|
||||||
|
__Microsoft_AspNetCore_Mvc_Razor_DictionaryPrefixTestTagHelper.PrefixValues["test"] = ModelExpressionProvider.CreateModelExpression(ViewData, __model => Model);
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
__Microsoft_AspNetCore_Mvc_Razor_DictionaryPrefixTestTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.DictionaryPrefixTestTagHelper>();
|
||||||
|
#line 10 "testfiles/input/modelexpressiontaghelper.cshtml"
|
||||||
|
__Microsoft_AspNetCore_Mvc_Razor_DictionaryPrefixTestTagHelper.PrefixValues["hour"] = ModelExpressionProvider.CreateModelExpression(ViewData, __model => __model.Hour);
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
#line 10 "testfiles/input/modelexpressiontaghelper.cshtml"
|
||||||
|
__Microsoft_AspNetCore_Mvc_Razor_DictionaryPrefixTestTagHelper.PrefixValues["minute"] = ModelExpressionProvider.CreateModelExpression(ViewData, __model => __model.Minute);
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
#line hidden
|
#line hidden
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#pragma checksum "TestFiles/Input/ModelExpressionTagHelper.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "bb128a8b2ca348e77a9b5481e541b5a8bf82de0b"
|
#pragma checksum "TestFiles/Input/ModelExpressionTagHelper.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "faaab08eebb321aea098bd40df018e89cd247b6f"
|
||||||
namespace AspNetCore
|
namespace AspNetCore
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
|
|
@ -19,6 +19,7 @@ namespace AspNetCore
|
||||||
private global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner __tagHelperRunner = null;
|
private global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner __tagHelperRunner = null;
|
||||||
private global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperScopeManager __tagHelperScopeManager = null;
|
private global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperScopeManager __tagHelperScopeManager = null;
|
||||||
private global::Microsoft.AspNetCore.Mvc.Razor.InputTestTagHelper __Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper = null;
|
private global::Microsoft.AspNetCore.Mvc.Razor.InputTestTagHelper __Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper = null;
|
||||||
|
private global::Microsoft.AspNetCore.Mvc.Razor.DictionaryPrefixTestTagHelper __Microsoft_AspNetCore_Mvc_Razor_DictionaryPrefixTestTagHelper = null;
|
||||||
#line hidden
|
#line hidden
|
||||||
public TestFiles_Input_ModelExpressionTagHelper_cshtml()
|
public TestFiles_Input_ModelExpressionTagHelper_cshtml()
|
||||||
{
|
{
|
||||||
|
|
@ -42,26 +43,7 @@ namespace AspNetCore
|
||||||
{
|
{
|
||||||
__tagHelperRunner = __tagHelperRunner ?? new global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner();
|
__tagHelperRunner = __tagHelperRunner ?? new global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner();
|
||||||
__tagHelperScopeManager = __tagHelperScopeManager ?? new global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperScopeManager(StartTagHelperWritingScope, EndTagHelperWritingScope);
|
__tagHelperScopeManager = __tagHelperScopeManager ?? new global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperScopeManager(StartTagHelperWritingScope, EndTagHelperWritingScope);
|
||||||
BeginContext(126, 2, true);
|
BeginContext(244, 2, true);
|
||||||
WriteLiteral("\r\n");
|
|
||||||
EndContext();
|
|
||||||
__tagHelperExecutionContext = __tagHelperScopeManager.Begin("input-test", global::Microsoft.AspNetCore.Razor.TagHelpers.TagMode.SelfClosing, "test", async() => {
|
|
||||||
}
|
|
||||||
);
|
|
||||||
__Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.InputTestTagHelper>();
|
|
||||||
__tagHelperExecutionContext.Add(__Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper);
|
|
||||||
#line 5 "TestFiles/Input/ModelExpressionTagHelper.cshtml"
|
|
||||||
__Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper.For = ModelExpressionProvider.CreateModelExpression(ViewData, __model => __model.Now);
|
|
||||||
|
|
||||||
#line default
|
|
||||||
#line hidden
|
|
||||||
__tagHelperExecutionContext.AddTagHelperAttribute("for", __Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper.For, global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes);
|
|
||||||
await __tagHelperRunner.RunAsync(__tagHelperExecutionContext);
|
|
||||||
BeginContext(128, 24, false);
|
|
||||||
Write(__tagHelperExecutionContext.Output);
|
|
||||||
EndContext();
|
|
||||||
__tagHelperExecutionContext = __tagHelperScopeManager.End();
|
|
||||||
BeginContext(152, 2, true);
|
|
||||||
WriteLiteral("\r\n");
|
WriteLiteral("\r\n");
|
||||||
EndContext();
|
EndContext();
|
||||||
__tagHelperExecutionContext = __tagHelperScopeManager.Begin("input-test", global::Microsoft.AspNetCore.Razor.TagHelpers.TagMode.SelfClosing, "test", async() => {
|
__tagHelperExecutionContext = __tagHelperScopeManager.Begin("input-test", global::Microsoft.AspNetCore.Razor.TagHelpers.TagMode.SelfClosing, "test", async() => {
|
||||||
|
|
@ -70,13 +52,84 @@ __Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper.For = ModelExpressionProvide
|
||||||
__Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.InputTestTagHelper>();
|
__Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.InputTestTagHelper>();
|
||||||
__tagHelperExecutionContext.Add(__Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper);
|
__tagHelperExecutionContext.Add(__Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper);
|
||||||
#line 6 "TestFiles/Input/ModelExpressionTagHelper.cshtml"
|
#line 6 "TestFiles/Input/ModelExpressionTagHelper.cshtml"
|
||||||
|
__Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper.For = ModelExpressionProvider.CreateModelExpression(ViewData, __model => __model.Now);
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
__tagHelperExecutionContext.AddTagHelperAttribute("for", __Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper.For, global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes);
|
||||||
|
await __tagHelperRunner.RunAsync(__tagHelperExecutionContext);
|
||||||
|
BeginContext(246, 24, false);
|
||||||
|
Write(__tagHelperExecutionContext.Output);
|
||||||
|
EndContext();
|
||||||
|
__tagHelperExecutionContext = __tagHelperScopeManager.End();
|
||||||
|
BeginContext(270, 2, true);
|
||||||
|
WriteLiteral("\r\n");
|
||||||
|
EndContext();
|
||||||
|
__tagHelperExecutionContext = __tagHelperScopeManager.Begin("input-test", global::Microsoft.AspNetCore.Razor.TagHelpers.TagMode.SelfClosing, "test", async() => {
|
||||||
|
}
|
||||||
|
);
|
||||||
|
__Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.InputTestTagHelper>();
|
||||||
|
__tagHelperExecutionContext.Add(__Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper);
|
||||||
|
#line 7 "TestFiles/Input/ModelExpressionTagHelper.cshtml"
|
||||||
__Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper.For = ModelExpressionProvider.CreateModelExpression(ViewData, __model => Model);
|
__Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper.For = ModelExpressionProvider.CreateModelExpression(ViewData, __model => Model);
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
#line hidden
|
#line hidden
|
||||||
__tagHelperExecutionContext.AddTagHelperAttribute("for", __Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper.For, global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes);
|
__tagHelperExecutionContext.AddTagHelperAttribute("for", __Microsoft_AspNetCore_Mvc_Razor_InputTestTagHelper.For, global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes);
|
||||||
await __tagHelperRunner.RunAsync(__tagHelperExecutionContext);
|
await __tagHelperRunner.RunAsync(__tagHelperExecutionContext);
|
||||||
BeginContext(154, 27, false);
|
BeginContext(272, 27, false);
|
||||||
|
Write(__tagHelperExecutionContext.Output);
|
||||||
|
EndContext();
|
||||||
|
__tagHelperExecutionContext = __tagHelperScopeManager.End();
|
||||||
|
BeginContext(299, 4, true);
|
||||||
|
WriteLiteral("\r\n\r\n");
|
||||||
|
EndContext();
|
||||||
|
__tagHelperExecutionContext = __tagHelperScopeManager.Begin("div", global::Microsoft.AspNetCore.Razor.TagHelpers.TagMode.StartTagAndEndTag, "test", async() => {
|
||||||
|
}
|
||||||
|
);
|
||||||
|
__Microsoft_AspNetCore_Mvc_Razor_DictionaryPrefixTestTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.DictionaryPrefixTestTagHelper>();
|
||||||
|
__tagHelperExecutionContext.Add(__Microsoft_AspNetCore_Mvc_Razor_DictionaryPrefixTestTagHelper);
|
||||||
|
if (__Microsoft_AspNetCore_Mvc_Razor_DictionaryPrefixTestTagHelper.PrefixValues == null)
|
||||||
|
{
|
||||||
|
throw new InvalidOperationException(InvalidTagHelperIndexerAssignment("prefix-test", "Microsoft.AspNetCore.Mvc.Razor.DictionaryPrefixTestTagHelper", "PrefixValues"));
|
||||||
|
}
|
||||||
|
#line 9 "TestFiles/Input/ModelExpressionTagHelper.cshtml"
|
||||||
|
__Microsoft_AspNetCore_Mvc_Razor_DictionaryPrefixTestTagHelper.PrefixValues["test"] = ModelExpressionProvider.CreateModelExpression(ViewData, __model => Model);
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
__tagHelperExecutionContext.AddTagHelperAttribute("prefix-test", __Microsoft_AspNetCore_Mvc_Razor_DictionaryPrefixTestTagHelper.PrefixValues["test"], global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes);
|
||||||
|
await __tagHelperRunner.RunAsync(__tagHelperExecutionContext);
|
||||||
|
BeginContext(303, 33, false);
|
||||||
|
Write(__tagHelperExecutionContext.Output);
|
||||||
|
EndContext();
|
||||||
|
__tagHelperExecutionContext = __tagHelperScopeManager.End();
|
||||||
|
BeginContext(336, 2, true);
|
||||||
|
WriteLiteral("\r\n");
|
||||||
|
EndContext();
|
||||||
|
__tagHelperExecutionContext = __tagHelperScopeManager.Begin("span", global::Microsoft.AspNetCore.Razor.TagHelpers.TagMode.StartTagAndEndTag, "test", async() => {
|
||||||
|
}
|
||||||
|
);
|
||||||
|
__Microsoft_AspNetCore_Mvc_Razor_DictionaryPrefixTestTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.Razor.DictionaryPrefixTestTagHelper>();
|
||||||
|
__tagHelperExecutionContext.Add(__Microsoft_AspNetCore_Mvc_Razor_DictionaryPrefixTestTagHelper);
|
||||||
|
if (__Microsoft_AspNetCore_Mvc_Razor_DictionaryPrefixTestTagHelper.PrefixValues == null)
|
||||||
|
{
|
||||||
|
throw new InvalidOperationException(InvalidTagHelperIndexerAssignment("prefix-hour", "Microsoft.AspNetCore.Mvc.Razor.DictionaryPrefixTestTagHelper", "PrefixValues"));
|
||||||
|
}
|
||||||
|
#line 10 "TestFiles/Input/ModelExpressionTagHelper.cshtml"
|
||||||
|
__Microsoft_AspNetCore_Mvc_Razor_DictionaryPrefixTestTagHelper.PrefixValues["hour"] = ModelExpressionProvider.CreateModelExpression(ViewData, __model => __model.Hour);
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
__tagHelperExecutionContext.AddTagHelperAttribute("prefix-hour", __Microsoft_AspNetCore_Mvc_Razor_DictionaryPrefixTestTagHelper.PrefixValues["hour"], global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes);
|
||||||
|
#line 10 "TestFiles/Input/ModelExpressionTagHelper.cshtml"
|
||||||
|
__Microsoft_AspNetCore_Mvc_Razor_DictionaryPrefixTestTagHelper.PrefixValues["minute"] = ModelExpressionProvider.CreateModelExpression(ViewData, __model => __model.Minute);
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
__tagHelperExecutionContext.AddTagHelperAttribute("prefix-minute", __Microsoft_AspNetCore_Mvc_Razor_DictionaryPrefixTestTagHelper.PrefixValues["minute"], global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes);
|
||||||
|
await __tagHelperRunner.RunAsync(__tagHelperExecutionContext);
|
||||||
|
BeginContext(338, 55, false);
|
||||||
Write(__tagHelperExecutionContext.Output);
|
Write(__tagHelperExecutionContext.Output);
|
||||||
EndContext();
|
EndContext();
|
||||||
__tagHelperExecutionContext = __tagHelperScopeManager.End();
|
__tagHelperExecutionContext = __tagHelperScopeManager.End();
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Microsoft.AspNetCore.Mvc.Rendering;
|
||||||
|
using Microsoft.AspNetCore.Mvc.ViewFeatures;
|
||||||
|
using Microsoft.AspNetCore.Razor.TagHelpers;
|
||||||
|
|
||||||
|
namespace TagHelpersWebSite.TagHelpers
|
||||||
|
{
|
||||||
|
[HtmlTargetElement(Attributes = "prefix-*")]
|
||||||
|
public class DictionaryPrefixTestTagHelper : TagHelper
|
||||||
|
{
|
||||||
|
[HtmlAttributeName(DictionaryAttributePrefix = "prefix-")]
|
||||||
|
public IDictionary<string, ModelExpression> PrefixValues { get; set; } = new Dictionary<string, ModelExpression>();
|
||||||
|
|
||||||
|
public override void Process(TagHelperContext context, TagHelperOutput output)
|
||||||
|
{
|
||||||
|
var ulTag = new TagBuilder("ul");
|
||||||
|
|
||||||
|
foreach (var item in PrefixValues)
|
||||||
|
{
|
||||||
|
var liTag = new TagBuilder("li");
|
||||||
|
|
||||||
|
liTag.InnerHtml.Append(item.Value.Name);
|
||||||
|
|
||||||
|
ulTag.InnerHtml.AppendHtml(liTag);
|
||||||
|
}
|
||||||
|
|
||||||
|
output.Content.SetHtmlContent(ulTag);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -43,6 +43,11 @@
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h3>Dictionary Valued Model Expression</h3>
|
||||||
|
<div prefix-test1="@Model.TagsToShow" prefix-test2="@Model.Version.Build"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
@section footerContent {
|
@section footerContent {
|
||||||
<p condition="Model.Approved" bold surround="section">© @Model.CopyrightYear - My ASP.NET Application</p>
|
<p condition="Model.Approved" bold surround="section">© @Model.CopyrightYear - My ASP.NET Application</p>
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue