Asp.net mvc 4 Html.ActionLink未填充href属性

Asp.net mvc 4 Html.ActionLink未填充href属性,asp.net-mvc-4,Asp.net Mvc 4,路线定义: context.MapRoute( name: "VeranderingsTraject", url: "Detail/{action}/{id}/{viewDate}/{toekomstBeeldId}", defaults: new { controller = MVC.Detail.Name, action = MVC.Detail.ActionNames.VeranderingsTraject, view

路线定义:

context.MapRoute(
            name: "VeranderingsTraject",
            url: "Detail/{action}/{id}/{viewDate}/{toekomstBeeldId}",
            defaults: new { controller = MVC.Detail.Name, action = MVC.Detail.ActionNames.VeranderingsTraject, viewDate = UrlParameter.Optional, toekomstBeeldId = UrlParameter.Optional },
            namespaces: new[] { typeof(DetailController).Namespace }
        );
详细控制器:

public virtual ActionResult VeranderingsTraject(int id, DateTime? viewDate = null, int? toekomstBeeldId = null)
    { ... }
视图中的ActionLink:

当前视图实际上也来自DetailController,因此我认为不需要控制器名称。由于它不起作用,我添加了它,但没有用

@Html.ActionLink(linkText:"TEST LINK", actionName: "VeranderingsTraject", controllerName: "Detail", routeValues: new {id= 1, viewDate = Model.VersieDatum}, htmlAttributes: null)
在浏览器中显示结果:

<a href="">
    TEST LINK
</a>

预期结果:

<a href="/Detail/VeranderingsTraject/1/{date, i need to encode the url i know)/">
    TEST LINK
</a>

所以在阅读了一些左右的文章之后(谢谢谷歌)

看来我的路线完全错了。所以我清理了我的整个路由表,现在我得到了更好的结果,它仍然不完美,但它可以被修复,这要感谢stackoverflow上其他ActionLink相关问题的答案

我在细节控制器上有大约10个动作,给出了相同的视图(不同对象之间共享的信息),我以前为每个动作都有一个路径,因此无法确定正确的路径

现在所有10条路线都被带到了这一条:

context.MapRoute(
            name: "Detail",
            url: "Detail/{action}/{id}/{viewDate}/{toekomstBeeldId}",
            defaults: new { controller = MVC.Detail.Name, action = MVC.Detail.ActionNames.Persoon, viewDate = UrlParameter.Optional, toekomstBeeldId = UrlParameter.Optional },
            namespaces: new[] { typeof(DetailController).Namespace }
        )
现在生成的链接如下所示:

<a href="/Atlas/Detail/persoon?id=14&requestDate=01%2F22%2F2014%2000%3A00%3A00"></a>

因此,我只需要将该日期的格式设置得更好一点,然后读取以更改/persoon?id=。。。至/persoon/14/01-22-2014/但我看到了一些关于stackoverflow的问题和答案,以解决该问题


感谢您的阅读和思考,希望这对其他人有所帮助

您使用的是Razor语法,这也是您为视图选择的视图引擎吗?是的,我选择了Razor引擎,并且大部分情况下它都在工作。只是这个片段不想工作(actionlink)