Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从参数呈现ASP.NET核心Razor标记_C#_Asp.net_Razor_Asp.net Core - Fatal编程技术网

C# 从参数呈现ASP.NET核心Razor标记

C# 从参数呈现ASP.NET核心Razor标记,c#,asp.net,razor,asp.net-core,C#,Asp.net,Razor,Asp.net Core,在ASP.NETCore之前,我可以将Razor标记作为参数传递给某个函数。然而,它似乎不再起作用了 例如,即使是这些简单的情况也不会产生任何效果: @{ Func<object, HelperResult> markup1 = @<text>hello world</text>; new HtmlString(markup1.Invoke(null).ToString()); Func<object, HelperResult> m

在ASP.NETCore之前,我可以将Razor标记作为参数传递给某个函数。然而,它似乎不再起作用了

例如,即使是这些简单的情况也不会产生任何效果:

@{
  Func<object, HelperResult> markup1 = @<text>hello world</text>;
  new HtmlString(markup1.Invoke(null).ToString());

  Func<object, HelperResult> markup2 = @<h1>hello world</h1>;
  new HtmlString(markup2.Invoke(null).ToString());
}
@{
Func markup1=@hello world;
新的HtmlString(markup1.Invoke(null.ToString());
Func markup2=@hello world;
新的HtmlString(markup2.Invoke(null.ToString());
}

我做错了什么?

这不会产生任何结果,因为你没有对结果做任何事情

@{
  Func<object, HelperResult> markup = @<text>hello world</text>;
  new HtmlString(markup.Invoke(null).ToString());
}
@{

    Func<object, HelperResult> markup = @<text>hello world</text>;
    var html = markup.Invoke(null);
    await html.WriteAction(ViewContext.Writer);
}

您会注意到,这里我们明确地告诉html变量(
HtmlResult
)要写入的位置。在本例中,您将希望写入
ViewContext.Writer
,这是一个
System.IO.TextWriter

“它不呈现任何内容”-因此它编译/生成至少?@Dai它编译并运行,没有错误。但该标记没有呈现。