0


私のウェブサイトには、検索機能のために多くのページで共有されている部分的なビュー が あり ます




さて、問題は、ファイルタイプを含めたくないページもあれば、( from-to )日付基準を含めたくないページもあるということです

私は何をすべきか?機能ごとに部分ビューを作成する必要がありますか? または内部から基準を表示/非表示にしますか?

_Filters.cshtml

@model Entities.FilterOperations
<table width="85%" border="0" align="center" cellpadding="0" cellspacing="1">
    <tr>
        <td class="formtit">
            Start Date
        </td>
    </tr>
    <tr>
        <td>@Html.TextBoxFor(m => m.StartDate, new { @class = "date" })
        </td>
    </tr>
    <tr>
        <td class="formtit">
            End Date
        </td>
    </tr>
    <tr>
        <td>@Html.TextBoxFor(m => m.EndDate, new { @class = "date" })
        </td>
    </tr>
  <tr>
        <td class="formtit">
            File Type
        </td>
    </tr>
    <tr>
        <td>@Html.TextBoxFor(m => m.FileType)
        </td>
    </tr>
    <tr>
        <td class="formtit">
            File Name
        </td>
    </tr>
    <tr>
        <td>@Html.TextBoxFor(m => m.FileName)
        </td>
    </tr> <tr>
        <td align="right">
            <input type="submit" value="Search" />
        </td>
    </tr>
</table>
4

2 に答える 2

0

次のようないくつかのプロパティを FilterOperations モデルに追加するだけです。

public bool RenderFileType {get; private set;}
public bool RenderDateTo {get; private set;}

新しい ctor の場合:

public FilterOperations(bool renderFileType = true, bool renderDateTo = true) {
    RenderFileType = renderFileType;
    RenderDateTo = renderDateTo;
}

これで、次のようにパーシャルで条件を設定できます。

@if(Model.RenderFileType) {
<tr>
    <td>@Html.TextBoxFor(m => m.FileType)
    </td>
</tr>
}

次に、ビューでパーシャルを次のように呼び出します。

@Html.Partial("_Filters.cshtml", new FilterOperations(renderDateTo: false))
于 2012-07-06T23:02:10.523 に答える
0

ほぼ等しいパーシャルを作成しても意味がありません。ビューバッグを使用します。

@if(ViewBag.ShowSomething ?? true)
{
    //enter code here
}
于 2012-07-06T21:24:22.113 に答える