5

例如我在页面上http://localhost:1338/category/category1?view=list&min-price=0&max-price=100

在我看来,我想呈现某种形式

@using(Html.BeginForm("Action", "Controller", new RouteValueDictionary { { /*this is poblem place*/ } }, FormMethod.Get))
{
    <!--Render some controls-->
    <input type="submit" value="OK" />
}

我想要的是view从当前页面链接获取参数值以使用它来构造表单获取请求。我试过@using(Html.BeginForm("Action", "Controller", new RouteValueDictionary { { "view", ViewContext.RouteData.Values["view"] } }, FormMethod.Get))了,但没有帮助。

4

4 回答 4

18

在这个线程中找到了解决方案

@(ViewContext.RouteData.Values["view"])
于 2014-02-20T09:22:33.263 回答
5

您不能直接在 ASP .NET Core 中访问 Request 对象。这是一种方法。

@ViewContext.HttpContext.Request.Query["view"]
于 2018-10-09T08:48:33.997 回答
4

您应该仍然可以从视图中访问 Request 对象:

@using(Html.BeginForm(
    "Action", 
    "Controller", 
    new RouteValueDictionary { 
        { "view", Request.QueryString["view"] } }, FormMethod.Get))
于 2012-09-04T15:24:28.087 回答
0

从 MVC 的角度来看,您可能希望将值从控制器传递到页面中,例如

public ActionResult ViewCategory(int categoryId, string view)
{
    ViewBag.ViewType = view;
    return View();
}

然后在您的视图中访问@ViewBag.ViewType,您需要将其转换为字符串,尽管默认情况下它是objectViewBag是一个动态对象)。

于 2012-09-04T15:27:09.640 回答