ASP.NET MVC3输入使用查询参数进行GET

时间:2012-02-01 13:46:15

标签: asp.net-mvc-3 get query-parameters

在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"/>
}

3 个答案:

答案 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方法,否则应该处理它。