C# Html.DropDownList和PagedList问题
我有个小问题。我正在写一个简单的rss阅读器。所以我有渠道和项目。这是项目的视图。所以我有一个SelectedChannel,用户可以选择他想要查看的频道类型,因为默认情况下,他会查看所有频道中的所有项目C# Html.DropDownList和PagedList问题,c#,asp.net-mvc-3,drop-down-menu,pagedlist,C#,Asp.net Mvc 3,Drop Down Menu,Pagedlist,我有个小问题。我正在写一个简单的rss阅读器。所以我有渠道和项目。这是项目的视图。所以我有一个SelectedChannel,用户可以选择他想要查看的频道类型,因为默认情况下,他会查看所有频道中的所有项目 `public ViewResult Index(string sortOrder, string currentFilter, int? page, int? SelectedChannel) { var channels = from ch in
`public ViewResult Index(string sortOrder, string currentFilter,
int? page, int? SelectedChannel)
{
var channels = from ch in db.Channels
orderby ch.Title
select ch;
ViewBag.SelectedChannel = new SelectList(channels, "ChannelID", "Title", SelectedChannel);
int channelID = SelectedChannel.GetValueOrDefault();
ViewBag.DateSortParm = sortOrder == "Date" ? "Date desc" : "Date";
if (Request.HttpMethod == "GET")
{
//page = 1;
}
else
{
page = 1;
}
var items = from i in db.Items
select i;
if (SelectedChannel.HasValue)
{
items = from i in db.Items
where i.ChannelID.Equals(channelID)
select i;
}
...
return View(items.ToPagedList(pageIndex, pageSize));
}`
下面是index.cshtml中的代码
@使用Html.begin
{
选择频道:@Html.DropDownListSelectedChannel,全部
}
问题是:当用户过滤1个通道时。很好。但是,不到一页,可以有很多页。因此,当用户试图转到下一页时,过滤器参数会松动。我看到了所有项目的第二页。但我想看selectedChannel的第二页,因为它再次变为空。希望你能理解我的意思。谢谢你
`<div>
Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber)
of @Model.PageCount
@if (Model.HasPreviousPage)
{
@Html.ActionLink("<<", "Index", new { page = 1, sortOrder = ViewBag.CurrentSort, currentFilter=ViewBag.CurrentFilter })
@Html.Raw(" ");
@Html.ActionLink("< Prev", "Index", new { page = Model.PageNumber - 1, sortOrder = ViewBag.CurrentSort, currentFilter=ViewBag.CurrentFilter })
}
else
{
@:<<
@Html.Raw(" ");
@:< Prev
}
@if (Model.HasNextPage)
{
@Html.ActionLink("Next >", "Index", new { page = Model.PageNumber + 1, sortOrder = ViewBag.CurrentSort, currentFilter=ViewBag.CurrentFilter })
@Html.Raw(" ");
@Html.ActionLink(">>", "Index", new { page = Model.PageCount, sortOrder = ViewBag.CurrentSort, currentFilter=ViewBag.CurrentFilter })
}
else
{
@:Next >
@Html.Raw(" ")
@:>>
}
`
这是index.cshtml的结尾这是我的工作方式,希望有点效果
@using (Html.BeginForm()) { <p>Select Channel: @Html.DropDownList("SelectedChannel", "All") <input type="submit" value="Filter" /></p> }
@if (Model.HasNextPage)
{
@Html.ActionLink("Next >", "Index", new { page = Model.PageNumber + 1, sortOrder = ViewBag.CurrentSort, currentFilter=ViewBag.CurrentFilter ciudad = "param-channel" }, new { id = "mylinkNext" })
@Html.Raw(" ");
@Html.ActionLink(">>", "Index", new { page = Model.PageCount, sortOrder = ViewBag.CurrentSort, currentFilter=ViewBag.CurrentFilter, ciudad = "param-channel" }, new { id = "mylinkLast" })
}
<script type="text/javascript">
$(function () {
$('#mylinkNext').click(function () {
var channel = $("#SelectedChannel").val();
this.href = this.href.replace("param-channel",encodeURIComponent(channel));
});
});
$(function () {
$('#mylinkLast').click(function () {
var channel = $("#SelectedChannel").val();
this.href = this.href.replace("param-channel",encodeURIComponent(channel));
});
});
</script>
你是如何构建寻呼机的?您如何导航到其他页面?