首页 新闻 赞助 找找看

asp.net mvc control如何多次读取Request的值

0
悬赏园豆:15 [已解决问题] 解决于 2016-02-19 20:48

问题:view中的hidden值,control第二次读取Request就为null。

我百度搜到的是:

http://my.oschina.net/vernon/blog/363693

《解决在Filter中读取Request中的流后, 然后再Control中读取不到的做法》

表示没看懂,有什么解决办法吗?

问题补充:

问题描述:

我用了pagedlist,分页显示什么的都是成功的,第一次通过hidden传递月薪,分页显示的是根据月薪条件显示的内容,不过点击其他页时,hidden月薪在control中接受不到。

view中代码:

<%using (Ajax.BeginForm("PositionList", "Position", new AjaxOptions { UpdateTargetId = "MVCpager", HttpMethod = "Get", Url = Url.Action("PositionList") }, new { @id = "searchForm", name = "searchForm"}))
{%>

<input type="hidden" name="yx" id="yx" value="<%=(string)ViewBag.yx%>" /><!--月薪-->

。。。。。省略

<%}%>

<%=Html.PagedListPager(Model,
page => Url.Action("PositionList",
new { page}
),
PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(
new PagedListRenderOptions
{
LinkToPreviousPageFormat = "上一页",
LinkToNextPageFormat = "下一页",
LinkToFirstPageFormat = "第一页",
LinkToLastPageFormat = "最后一页",
MaximumPageNumbersToDisplay = 4
},
new AjaxOptions()
{
HttpMethod = "Get",
UpdateTargetId = "MVCpager"
}))%>

control代码:

public ActionResult PositionList(int? page)//职位信息列表
{
int pageSize = 1; //每页显示的信息数
int pageIndex =page??1;
int count = 1;
string EB = "";
string JC = "";
string WE = "";
string WC = "";
string YX = "";
if (Request["yx"]!= null)
{
YX = Request["yx"];
ViewBag.yx = Request["yx"];

}

List<CompanyPosition> CompanyPosition = positionmanage.PositionList(pageIndex, pageSize, EB, JC, WE, WC, YX, out count);
List<ModelCompanyPosition> MCompanyPosition = new List<ModelCompanyPosition>();
。。。。。省略

。。。。。。
//var CPage = MCompanyPosition.ToPagedList(pageIndex, pageSize);
var CPage = new StaticPagedList<ModelCompanyPosition>(MCompanyPosition, pageIndex, pageSize, count);
PagedClientViewModel test = new PagedClientViewModel();
test.ModelCompanyPosition = CPage;
test.yx = ViewBag.yx;
//int test = CPage.TotalItemCount; //总数据条数
int test1 = CPage.PageNumber; //当前页
int test2 = CPage.PageCount; //总页数
i
return View(test);
}

这是首次显示的效果:

这是第一次点击上图左侧月薪一栏,control中接受到数据的效果图:

这是选择月薪条件后,显示的分页信息:

这是点击上图中其他页(例如:点击第三页)后,control中的情况:

月薪的值并没有传到control中,而页码传到control中了。

 

 

洛水3000的主页 洛水3000 | 初学一级 | 园豆:14
提问于:2016-02-18 22:56
< >
分享
最佳答案
0

static string test = “”;

public ActionResult PositionList(int? page)//职位信息列表
{
int pageSize = 1; //每页显示的信息数
int pageIndex =page??1;
int count = 1;
string EB = "";
string JC = "";
string WE = "";
string WC = "";
string YX = "";
if (Request["yx"]!= null)
{
YX = Request["yx"];
ViewBag.yx = Request["yx"];

}

if(test!=null)

{

YX = test;

}

List<CompanyPosition> CompanyPosition = positionmanage.PositionList(pageIndex, pageSize, EB, JC, WE, WC, YX, out count);
List<ModelCompanyPosition> MCompanyPosition = new List<ModelCompanyPosition>();
。。。。。省略

。。。。。。
//var CPage = MCompanyPosition.ToPagedList(pageIndex, pageSize);
var CPage = new StaticPagedList<ModelCompanyPosition>(MCompanyPosition, pageIndex, pageSize, count);
PagedClientViewModel test = new PagedClientViewModel();
test.ModelCompanyPosition = CPage;
test.yx = ViewBag.yx;
//int test = CPage.TotalItemCount; //总数据条数
int test1 = CPage.PageNumber; //当前页
int test2 = CPage.PageCount; //总页数
i
return View(test);
}

洛水3000 | 初学一级 |园豆:14 | 2016-02-19 19:14
其他回答(1)
0

贴你的Control代码,

收获园豆:15
happydaily | 园豆:301 (菜鸟二级) | 2016-02-19 08:34

我已补充问题

支持(0) 反对(0) 洛水3000 | 园豆:14 (初学一级) | 2016-02-19 17:57

谢谢关注,我已解决

支持(0) 反对(0) 洛水3000 | 园豆:14 (初学一级) | 2016-02-19 19:15

@屠龙灬世家:  不要用Static来解决它,你可以试着用多个不同的电脑访问,只要有其他人改变了Static的值,所有人取到的YX都改变,上线就会麻烦了。建议用地址栏保存用户点击的数据,或者用Cookie。

支持(0) 反对(0) happydaily | 园豆:301 (菜鸟二级) | 2016-02-23 08:35

@happydaily: 非常感谢,这是我的毕设,所以上线啥的完全没经验,我再找资料改改看,有什么不懂的再问您。

支持(0) 反对(0) 洛水3000 | 园豆:14 (初学一级) | 2016-02-23 09:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册