0

在 asp.net MVC3 中,如何使用源网页的查询参数实现输入?我更喜欢不使用隐藏输入。

更新。例如,我的页面包含一个查询参数 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"/>
}
4

3 回答 3

1

您的问题的解决方案正是这样的:

Html.BeginForm("Action", "Controller", new { id = 54 }, FormMethod.Get)
于 2012-02-02T23:29:24.433 回答
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"];
     }
}

如果您想使用以前的 url 参数编辑当前 url,此链接将对您有所帮助:https ://stackoverflow.com/a/4222584/571203

于 2012-02-01T14:41:54.937 回答
0

我会使用 TempData 来存储这种临时数据,临时数据在读取后保存为一次路由,除非使用 keep 方法,否则应该将其处理掉。

于 2012-02-01T14:56:11.717 回答