我在我的网站上有一个部分视图,在许多页面之间共享,用于搜索功能,包括:
从日期开始
到目前为止
文件类型
文件名
现在,问题是,在某些页面我不想要包含文件类型,在其他页面我不想要(从 - 到)日期标准包括在内
我该怎么办?我应该为每个功能创建局部视图吗?或显示/隐藏内部标准?
_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>
答案 0 :(得分:0)
创造几乎相同的偏见是没有意义的。使用Viewbag。
@if(ViewBag.ShowSomething ?? true)
{
//enter code here
}
答案 1 :(得分: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))