在asp.net MVC3中,如何使用源网页的查询参数实现输入GET?我不喜欢使用隐藏的输入。
更新。例如,我的页面包含查询参数id = 54,当输入导致GET时,我需要目标控制器/操作接收此查询参数。
// could i change it for include query parameters of source page?
using (Html.BeginForm("Action", "Controller", FormMethod.Get))
{
<input type="submit" value="Text" onclick="submit"/>
}
答案 0 :(得分:1)
问题的解决方案就是这样:
Html.BeginForm("Action", "Controller", new { id = 54 }, FormMethod.Get)
答案 1 :(得分:0)
使用此:ControllerContext.HttpContext.Request.UrlReferrer.ToString();
如果它没有帮助,您可以使用全局过滤器(在global.asax注册)
protected void Application_Start()
{
GlobalFilters.Filters.Add(new PreviousUrlSavingFilter())
}
public class PreviousUrlSavingFilter: ActionFilterAttribute
{
protected override OnActionExecuted(ActionExecutedContext filterContext)
{
filterContext.HttpContext.Session["PreviousRouteData"] = filterContext.RouteData;
}
// use this property to access previous page route data
public static RouteData PreviousUrlData
{
return (RouteData) HttpContext.Current.Session["PreviousRouteData"];
}
}
如果您想使用以前的网址参数修改当前网址,此链接会对您有所帮助:https://stackoverflow.com/a/4222584/571203
答案 2 :(得分:0)
我会使用TempData来存储这种临时数据,tempdata在被读取之后保存为一个路由条,除非使用keep方法,否则应该处理它。