2011-12-11 43 views
0

当我选择我的PagedList<T>的任何页面时,[HttpGet]方法被激活。因此,Im无法使用Request.Form.GetValues()使用MvcPager获取表单值

我刚刚看到Request变量进入即时窗口,并意识到我没有看到任何值,我想从我的ID(请求不带任何值的任何屏幕ID,因为我没有使用post方法)。我得到了一个网格(表),每个记录的一个字段是一个复选框,在分页后,我需要知道这个复选框是否启用,以保持它的检查(我已经使代码保持检查,我只需要要知道林怎么回事,看看这些复选框被选中

我已经知道自己的身份证也

进出口使用下面的控制来生成这些复选框:。

//foreachloop 
<%: Html.CheckBox(item.ID.ToString(), item.isChecked)%> 

对于我的分页,进出口使用以下内容:

.aspx的: <%:Html.Pager(Model.ListaGridPaginada)%>

这寻呼机是调用以下一个过载:

public static MvcHtmlString Pager(this HtmlHelper helper, int totalPageCount, int pageIndex, string actionName, string controllerName, 
     PagerOptions pagerOptions, string routeName, RouteValueDictionary routeValues, IDictionary<string, object> htmlAttributes) 
    { 
     var builder = new PagerBuilder 
      (
       helper, 
       actionName, 
       controllerName, 
       totalPageCount, 
       pageIndex, 
       pagerOptions, 
       routeName, 
       routeValues, 
       htmlAttributes 
      ); 
     return builder.RenderPager(); 
    } 

我调用该方法至极构建这个变量与以下参数:

public static MvcHtmlString Pager<T>(this HtmlHelper helper, PagedList<T> pagedList) 
    { 
     if (pagedList == null) 
      return Pager(helper,null, null); 
     return Pager(helper, pagedList.TotalPageCount, pagedList.CurrentPageIndex, null, null, null,null, null,null); 
    } 

这pagerHelper是从Webdiyer

回答

0

我想如果你把它包装在一个表单中,并且将方法设置为GET,那么它应该将所有表单值传递给查询字符串。事情是这样的:

using (Html.BeginForm("Controller", "Action", FormMethod.Get)) 
{ 
    // grid in here 
    //foreachloop 
    <%: Html.CheckBox(item.ID.ToString(), item.isChecked)%> 
    <input type="submit" value="Save" /> 
} 

当你点击提交按钮,您的查询字符串会是这个样子:

Action?ID1=false&ID2=true&ID2=false 

其中,你将看到查询字符串,以确定是否该复选框ID包含true。看看ID1 = false,但ID2是真是假?这意味着ID1没有被选中,但ID2被检查。

Request.QueryString["ID2"].Contains("True") 

如果不适合你,你可以跟踪哪些复选框被把他们选中的状态在一个隐藏的价值和传递,大约用JavaScript检查。

这有帮助吗?

+0

感谢您的回应,Hawkke。问题是我需要POST方法。将方法设置为GET会将我所有的动作设置为post函数。 –

+0

在这种情况下,我会使用隐藏字段。当选中一个框时,将该框的ID添加到隐藏字段;当它未被选中时,删除该ID。隐藏字段将作为字符串参数发布到您的控制器。您可以使用javascript/jquery解析隐藏的字段,并在页面就绪事件中选中正确ID的复选框。 – hawkke