我正在尝试创建一个包含网格和搜索的页面。问题是我希望有一个网格的局部视图和一个用于搜索的视图。
如果进行搜索,则应使用新信息呈现网格局部视图。
目前,我需要从网格(当前存储在viewdata中)中获取信息,例如我要排序的列等等,以便进行搜索,因为我想保留这些设置。此信息仅在网格部分中可用。
这样做的最佳方法是使代码整洁美观,但不是一团糟吗?
在哪里可以在其他局部视图中存储我需要的信息?
部分视图1;
<table>
<%= Html.CreateGrid(Model, "Grid", "Grid", (int)ViewData["SortColumn"], (bool)ViewData["SortedASC"])%>
</table>
部分视图2;
<div class="searchControl">
<input type="text" class="SearchBox" href="<%= Url.Action("Grid", "Grid", new {page = 1, columnToSortBy=/* would like to access viewdata from partial view 1 here. */, sortASC = /* would like to access viewdata from partial view 1 here. */ } ) %>" />
<input type="submit" value="Search" class="SearchButton" />
</div>
我知道我可能会对此采取完全错误的方法,所以请随意指出正确的方法!
谢谢!
答案 0 :(得分:1)
ViewData是存储在视图和部分中访问的数据的好地方。
如果使用强类型视图,效果会更好。然后,您可以通过类型化模型访问用于排序过滤的数据。 我希望模型类实现一个IGridFeatures接口,它具有SortedASC,SortColumn,Page的属性。
将这些可选属性放在路径中但在查询字符串中通常是个好主意。
答案 1 :(得分:0)
我认为你最好通过javascript控制你的链接,因为你真正想要的是控制用户界面。