例如我在页面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))
,但没有帮助。
答案 0 :(得分:15)
我找到了解决方案in this thread
@(ViewContext.RouteData.Values["view"])
答案 1 :(得分:3)
您仍然可以从视图中访问Request对象:
@using(Html.BeginForm(
"Action",
"Controller",
new RouteValueDictionary {
{ "view", Request.QueryString["view"] } }, FormMethod.Get))
答案 2 :(得分:1)
您不能直接在ASP .NET Core中访问Request对象。这是一种方法。
@ViewContext.HttpContext.Request.Query["view"]
答案 3 :(得分:0)
从MVC的角度来看,您可能希望将控制器中的值传递到页面中,例如
public ActionResult ViewCategory(int categoryId, string view)
{
ViewBag.ViewType = view;
return View();
}
然后在您的视图中访问@ViewBag.ViewType
,您需要将其强制转换为字符串,因为它默认为object
(ViewBag
是动态对象)。< / p>