首页 > 解决方案 > 如何将查询字符串添加到 actionLink?

问题描述

下面的链接给出了以下网址:http://localhost:11111/files/Details/3

  @Html.ActionLink("Details", "Details", "mycontroller", new { id = item.id },null)

但我试图有一个像这样的 url 参数http://localhost:11111/files/Details?id=3http://localhost:11111/files/Details.aspx?id=3

如何获取操作链接以显示详细信息之类的 url?i=3

这是我的控制器视图:

public ActionResult Details(int? id)
    {
       ...
        return View();
    }

标签: asp.net-mvcrazor

解决方案


路由代码可以在我们项目的 Global.asax 文件中的 RegisterRoutes 方法下找到。

我在 RegisterRoutes 方法中看到了一个 cookie。

routes.MapRoute(
 "Default",     // Route name
 "{controller}/{action}/{id}",     // URL with parameters
 new { controller = "Home", action = "Index", id = "" }    // Parameter defaults);

使用上面的 MapRoute 方法,我们定义了一条新路线。

样本 ;

public class HaberController : Controller
{
      public ActionResult Listele()
      {
           // Listing codes will be written
            return View("Listele");
      }

      public ActionResult Detay(string HaberId)
      {
           // Detail codes will be written
           return View("Detay");
      }
}

我们转到 Global.asax 文件并进行如下编辑。

public static void RegisterRoutes(RouteCollection routes)
{
       routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

       routes.MapRoute(
             "HaberListeleme",
             "Haber",
             new { controller = "Haber", action = "Listele" }
       );

       routes.MapRoute(
            "HaberDetay",
            "Haber/{id}",
            new { controller = "Haber", action = "Detay" }
        );

       routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = "" } // Parameter defaults
        );
}

如果我们按如下方式进行路由:

routes.MapRoute(
      "HaberDetay",
      "Haber/{*Id}",
      new { controller = "Haber", action = "Detay" }
);

所以如果我们在参数名旁边写*,不管News/url标签后面说什么,都会发送到Controller中Detail方法的相关参数。

例如:

http://www.doguhanaydeniz.com/Haber/Turkiye/Guncel/34389

如果请求 URL 作为土耳其 / 当前 / 34389 将作为参数发送。


推荐阅读