MVC3,页面submit刷新后,地址栏中url参数丢了
本人MVC3刚玩不久,昨天遇到个问题,不是很了解。请朋友们解惑。
简单点说就是页面submit刷新后,地址栏中url参数丢了。
具体情况如下:
页面URL:http://localhost:5286/Logger/OperLogIndex?a=a&RClick=20(带了2个参数)
页面内容就是几个文本框、一个查询按钮(submit),然后就是一个列表。如下:
@using (Html.BeginForm("OperLogIndex", "Logger", FormMethod.Post))
{
....内容
}
点击submit执行后台的action
public ActionResult OperLogIndex(FormCollection formColl, int currentPage = 1)
{
.....
return View();
}
页面刷新后,地址栏url变成了:http://localhost:5286/Logger/OperLogIndex
参数没了。请问如何解决。
(Ajax我知道是可以解决的。现在就是用普通刷新方式,能不能解决这个问题?原因是什么?请朋友们解惑。)
------解决方案--------------------能把你Form表单的action截来嘛
再者action中得参数不直接给值,而是从在form的action中写的
------解决方案--------------------因为form中的acrion属性值是/Logger/OperLogIndex,所以会跳转到这个页面啊,如果想用post方式跳转到新页面且带参数的话,你可以在post提交之前先改变action的值,也就是在input type="submit"在加上 onclick属性,例如<input type="submit" value="提交" onclick= 'this.form.action="/Logger/OperLogIndex?a=a&RClick=20" ' />
------解决方案--------------------
给你提供两种方法传参
1.@using (Html.BeginForm("OperLogIndex", "Logger", FormMethod.Post,new{a=XXX,RClick=XXXX}))
2.文本框<input type='text' name='a'> <input type='text' name='RClick'>
这两种方式传参controller里的action:
public ActionResult OperLogIndex(string a ,int RClick)