【问题标题】:How to get the current page in view?如何查看当前页面?
【发布时间】:2018-03-08 17:01:16
【问题描述】:

有没有一种方法可以访问视图内的“当前页码”(它是我的控制器类中的方法中的一个参数),而无需通过View(modelWithCurrentPageAndOtherParameters) 方法从控制器发送它?像Context.Current.Page 这样的东西存在吗?

例子:

如果我访问此网址,例如:https://example.com/products/page/3

如何在视图中获得数字 3?

【问题讨论】:

  • 您能详细说明一下吗?如果您在视图中,那么您当前页面
  • @DiskJunky 添加到我的问题中。如果还不够清楚,请告诉我。
  • 这可能对你有帮助:stackoverflow.com/questions/16971079/…
  • @WillyDavidJr 你的建议在 javascript 中得到它,我需要用 c# 在服务器端得到它。

标签: c# asp.net-core-mvc


【解决方案1】:

为了获取请求参数,您必须通过视图的模型或ViewBag 在控制器中设置它,以便视图可以访问它。例如;

public ActionResult Test(string parameterName)
{
    ViewModelSample model = new ViewModelSample();
    model.Value = parameterName;
    return View(model);
}

在你看来你会拥有;

@model ViewModelSample

<span>@Model.Value</span>

或者你可以在你的控制器中拥有;

ViewBag.ParameterName = parameterName;

在视图中;

<span>@ViewBag.ParameterName</span>

【讨论】:

    【解决方案2】:

    请尝试以下任一解决方案

    @Request.Params["paramName"] or
    @ViewContext.RouteData.Values["id"]
    

    【讨论】:

    • 我明白了:“名称‘请求’在当前上下文中不存在”。
    • @JedatKinports,那就是Context.Current.Request
    • 'HttpContext' 不包含'Current' 的定义,并且找不到接受'HttpContext' 类型的第一个参数的扩展方法'Current'(您是否缺少 using 指令或程序集引用?)我缺少哪个参考?
    • 假设您的模板使用 Razor 引擎,您可以像 @Request.Params["paramName"] 一样访问
    • 是的,我正在使用 Razor,@if(){} 可以正常工作。但我仍然收到我之前发布的那个错误。 :(
    猜你喜欢
    • 2016-11-29
    • 1970-01-01
    • 1970-01-01
    • 2019-02-26
    • 2013-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多