【问题标题】:ASP.NET MVC - Get parameter value from URL in the viewASP.NET MVC - 从视图中的 URL 获取参数值
【发布时间】:2017-01-13 02:28:24
【问题描述】:

如何从客户端的 URL 中获取参数值,查看?

网址:

localhost:18652/category/1

地图路线:

 routes.MapRoute(
     name: "ResultsByCategory",
     url: "category/{id}",
     defaults: new { controller = "Home", action = "ResultsByCategory"}
 );

我如何获得身份证?

【问题讨论】:

  • 在控制器主页中创建以id为参数的ResultsByCategory方法
  • 我有这个方法。我想在我的视图中获取 ID 值。
  • 有几个选项,你可以在模型中传递(在ResultsByCategory中返回视图时传递模型)或者使用ViewBag、ViewData或TempData,这取决于你想要做什么
  • 我不想将此值从控制器传递给视图。我需要直接从 url、request 等获取,但在我看来。
  • 我认为这个url中没有查询字符串,我错了吗?

标签: c# asp.net asp.net-mvc url url-routing


【解决方案1】:

我测试了这个网址:

http://localhost:1865/category/Index/1

鉴于我有这个:

您可以在示例视图中通过此代码获取 id:

@{
    var id = Request.Url.Segments[3];
}

一般情况下,您可以使用以下代码:

@{
    var id = Request.Url.Segments.Last();
}

【讨论】:

    【解决方案2】:

    不明白直接从 URL 获取的意义,请求因为您的视图总是会从您的控制器加载。

    正如 derloopkat 建议的那样

    在您的家庭控制器中

    Public ActionResult ResultsByCategory (int id)
    {
      ViewBag.id = id;
      return View();
    } 
    

    在您看来,您可以通过调用来使用它

    @ViewBag.id
    

    【讨论】:

      【解决方案3】:

      此代码更适合您的代码

      string id = Request.Path.Value.Split('/').LastOrDefault();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-04-27
        • 1970-01-01
        • 1970-01-01
        • 2017-11-15
        • 1970-01-01
        • 1970-01-01
        • 2010-11-02
        • 2010-10-06
        相关资源
        最近更新 更多