【发布时间】:2020-01-28 11:37:47
【问题描述】:
我正在尝试修改一个项目,以便当您通过 <a> 元素访问路由和参数时,它们不会显示在 URL 中。
这是视图上的代码:
@Html.ActionLink("Edit", "EditSchedule", new { id = item.OID, iorDapa = item.IOR_HORARIO }) |
@Html.ActionLink("Delete", "DeleteSchedule", new { id = item.OID, iorDapa = item.IOR_HORARIO })
我试图通过调用这个来更改 RouteLink 的操作链接
routes.MapRoute(
name: "EditSchedule",
url: "{controller}/{action}/{oid}_{iorDapa}",
defaults: new { controller = "Users", action = "Index", oid = UrlParameter.Optional, iorDapa = UrlParameter.Optional }
);
但是,这不起作用,因为它一直在使用已建立的 URL 创建链接元素,所以我认为还需要其他东西,也许是我不知道调用 api 的某种方法?
而且...从这里开始,我尝试了很多东西,但似乎都没有。
从我使用过的其他项目(JS)中,我记得路由器调用了一个 API,而 API 又调用了一个控制器文件,而该控制器执行了逻辑然后调用视图。
但是,在这个 C# 项目中,我无法让程序调用 WebApiConfig 文件或 RouteConfig,而无需实际显示 URL 上的参数。
对不起,如果我对自己的解释有点糟糕,我有点迷失了!
【问题讨论】:
-
如果没有参数,如何找到对应的带参数路由?
-
使用 JS,你做了同样的事情,只是通过前端路由从你那里抽象出来
-
@Cid 是通过 api 发送它们,所以路由看起来像这样:“route/page”,而不是“route/page/oid=241&iorDapa=23”
-
@KristófTóth 我记不太清了,但是是的,它是用 Vue.JS 完成的,并且前端有一个路由器。事情是我确信必须有一种方法可以通过 JSON 或其他方式将参数发送到页面中,调用一些控制器或 API,我只是不知道如何。
-
如果您不想从 url 读取请求头或请求的内容,您可以使用它们。在此处阅读有关参数绑定的更多信息:docs.microsoft.com/en-us/aspnet/web-api/overview/…
标签: c# asp.net-mvc asp.net-web-api