我在下面的控制器中指定了一个包含与动作过载相匹配的参数的路由。在剃刀视图中创建URL属性包含参数的路由
public class OrganisationsController : Controller
{
[HttpGet]
[Route("organisations/{id}/employees")]
public ActionResult Employees(int id)
{
// Some code here
}
}
我试图创建一个使用@Html.ActionLink
相匹配的控制器上指定的路线,例如localhost:55416/Organisations/2/Employees
在Razor视图的URL,但我没有能够得到它的工作。
我已经能够获得最接近的是localhost:55416/Organisations/Employees/2
的路线是错误的不正常工作,或localhost:55416/Organisations/Employees?id=2
其实际工作的组织控制器上的员工的行动被击中,但当时它只是一个查询字符串,然后这首先否定了添加[Route("organisations/{id}/employees")]
路线的目的。
我在互联网上找到的所有示例和帖子都处理最后的参数,例如[Route("organisations/employees/{id}")]
,而不是在控制器和动作之间。
我还没有试图将自定义路由添加到RouteConfig
,因为在我看来,URL是根据控制器上指定的路由首先需要正确的起点,还是我在这里错了?
有没有一种方法可以让我按照我想要的方式使用ActionLink
来生成URL,还是有另一种方法我需要去做这件事?
你试过'@ Html.ActionLink( “myLink的”, “员工”, “组织”,新{ID = 2},NULL)' –
@sam,喜有,我有,当使用' @ Html.ActionLink(“Employees”,“Employees”,“Organizations”,new {id = item.Id},null)'我得到localhost:55416/Organizations/Employees/2 URL。 – user3706626
你可以提交你的'RouteConfig'类吗? –