是否可以在Razor表格块中嵌套Razor部分?

时间:2012-10-01 18:14:48

标签: asp.net-mvc razor

我有以下Razor标记块:

@section StoreSearch
{
    @Html.Partial("SearchPartial", Model)
}
<section id="gallery-index">
...
</section>
<nav class="pager">
    <a href="#" rel="prev" class="pager-nav" title="Previous Page">Prev</a> Page @(Model.PageIndex + 1) of @Model.PageCount <a href="#" rel ="next" class="pager-nav" title="Next Page">Next</a>
</nav>

我想用表格包围整个块,如

@using (Html.BeginForm("Index", "Gallery", FormMethod.Post, new { id = "search-form" }))
{
    @section StoreSearch
    {
        @Html.Partial("SearchPartial", Model)
    }
    <section id="gallery-index">
        ...
}

然而,当我这样做时,解析器似乎对@section StoreSearch部分犹豫不决,并抱怨“无法解析符号StoreSearch”。

我试图不允许,或者我只是错过了某种逃避方法?

1 个答案:

答案 0 :(得分:3)

看起来您在Razor解析引擎中发现了一个错误。很可能将using子句中的第一个@符号解析为变量,在您的情况下实际上是一个函数,因此它会抛出异常。目前解决方案是使用div(或任何html元素)环绕您的部分。

@using (Html.BeginForm("Index", "Gallery", FormMethod.Post, 
                       new { id = "search-form" }))
{
  <div>
    @section StoreSearch
    {
      @Html.Partial("SearchPartial", Model)
    }
    <section id="gallery-index">
    ...
    </section>
  </div>
}