Razor:条件语句抛出错误中的<text>标记

Chr*_*mut 2 c# asp.net-mvc razor

@if (Model.Property != null)
{
    <text>
        <div class="row">
    </text>
    Html.RenderPartial("~/Views/CustomView.cshtml", Model);
    <text> (line throwing error)
        </div>
    </text>
}
Run Code Online (Sandbox Code Playgroud)

错误:"文本"元素未关闭.所有元素必须是自动关闭或具有匹配的结束标记."

我很难理解为什么第二组<text>标签会返回该错误.任何帮助理解它将不胜感激.

Luc*_*ski 5

在Razor中,标签必须正确嵌套.<text></div></text>是不是适当的嵌套.

我想在你的情况下你应该删除所有<text></text>标签:

@if (Model.Property != null)
{
    <div class="row">
        @Html.Partial("~/Views/InTimeTemplate/InputFormElements/ReadMore.cshtml", Model);
    </div>
}
Run Code Online (Sandbox Code Playgroud)

这相当于:

@if (Model.Property != null)
{
    <div class="row">
        @{
            Html.RenderPartial("~/Views/InTimeTemplate/InputFormElements/ReadMore.cshtml", Model);
        }
    </div>
}
Run Code Online (Sandbox Code Playgroud)
  • Partial 将返回结果,这将由于 @
  • RenderPartial将直接呈现它,但你需要引入一个C#块与@{...}