3

私は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を解決できません」と文句を言います。

私がしようとしていることは許可されていないのですか、それともある種のエスケープ方法が欠けているだけですか?

4

1 に答える 1

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>
}
于 2012-10-01T18:44:07.933 に答える