0

2 つの部分ビューを呼び出そうとしていますが、検索パラメーターを渡す前に、プログラムが Web グリッドに入力しようとしています。検索ボックスにテキストを渡す前に、webgrid をレンダリングしようとするのを防ぐ方法がわかりません。これは私の部分的な見方です:

<div class="webgrid-wrapper">
    <div class="webgrid-title">Values</div>
    <div id="grid">
        @grid.GetHtml(
tableStyle: "webgrid",
        headerStyle: "webgrid-header",
        footerStyle: "webgrid-footer",
        alternatingRowStyle: "webgrid-alternating-rows",
        columns: grid.Columns(
            grid.Column("Id", "ID"),
            grid.Column("Name", "Name")
        )
        )
</div>
</div>
</div>

これは、両方の部分ビューを引っ張っているホーム ビューです。

    <section class="featured">
    <div class="content-wrapper">
        <hgroup class="title">
            <h1>@ViewBag.Title</h1>
            <h2>@ViewBag.Message</h2>
        </hgroup>
    </div>
</section>
@using (Html.BeginForm("Analysis", "Home", "POST"))
{
<div class="searchField">
    <div class="searchbox">
        Search: <input type="text" name="Search" />
        <input type="submit" value="Submit">
    </div>
</div>
}


 @Html.Partial("PartialChemAnalysis")
 @Html.Partial("PartialSlagView")
4

1 に答える 1

0

検索パラメーターに値があるかどうかを確認することでこれを行うことができます。値がない場合は、グリッドをレンダリングする必要はありません。

あなたのコントローラーで

public ViewResult Analysis(string search) {
        ViewBag.DisplayGrid = !string.IsNullOrEmpty(search);
        //do you logics then return
    }

あなたの見解では

  @if (ViewBag.DisplayGrid != null && ViewBag.DisplayGrid) {
        //Render your partial since its true.
          @Html.Partial("PartialChemAnalysis")
          @Html.Partial("PartialSlagView")
     }

初期ロード時または検索パラメーターがない場合。ビューバッグは false に設定され、パーシャルはレンダリングされません。検索パラメータに値がある場合にレンダリングされます。

于 2013-03-14T08:46:20.183 に答える