asp.net-mvc - 如何将查询字符串添加到 actionLink?
问题描述
下面的链接给出了以下网址:http://localhost:11111/files/Details/3
@Html.ActionLink("Details", "Details", "mycontroller", new { id = item.id },null)
但我试图有一个像这样的 url 参数http://localhost:11111/files/Details?id=3或http://localhost:11111/files/Details.aspx?id=3
如何获取操作链接以显示详细信息之类的 url?i=3
这是我的控制器视图:
public ActionResult Details(int? id)
{
...
return View();
}
解决方案
路由代码可以在我们项目的 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方法的相关参数。
例如:
如果请求 URL 作为土耳其 / 当前 / 34389 将作为参数发送。
推荐阅读
- regex - gawk 匹配函数参数作为正则表达式
- opencv - OpenCV videocapture读取相机rtsp错误
- reactjs - firebase safari 错误消息:此浏览器不支持使用 firebase SDK 所需的 API
- flutter - 网格视图指南
- java - 为什么我在 H2 的整数位置收到空白的转换错误?
- mysql - CodeIgniter 中的多行插入
- asp.net-core - 服务器中的日期时间冲突 (dd/mm/yyyy)
- tabulator - 制表符 - 更改行选择列中复选框的样式
- javascript - 用于匹配 getFullYear 日期的 div id 公式
- excel - Excel 将日期范围总计拆分为每日总计