使用ASP.NET MVC4中的Razor创建链接以升级控制器

时间:2013-10-03 09:00:57

标签: asp.net-mvc-4 razor-2

这是我用来创建顶级链接链接的代码:

@Html.ActionLink("Edit",Url.Action("Edit","Home", new{row.Application_ID})) 
// supposed to return /Home/Edit/x (application_id)

相反,它返回:      / Home / Home / Edit / x //当前视图为主页/编辑

请帮忙。

编辑1: 路线表信息:

//This is for Edit 
routes.MapRoute(
           "Edit", // Route name
           "Home/Edit/{application_id}", // URL with parameters
           new { controller = "Home", action = "Edit", application_id = UrlParameter.Optional } // Parameter defaults
        );

        // This is the default route, I've modified it to LogOn.
        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Account", action = "LogOn", id = UrlParameter.Optional } // Parameter defaults
        );

3 个答案:

答案 0 :(得分:0)

您不需要内部@Url.Action,请尝试此选择:

@Html.ActionLink("Edit", "Edit", "Home", new { application_id  = row.Application_ID }, null);

答案 1 :(得分:0)

作为haim770的小版本答案。如果您因某些原因需要使用Url.Action代替Html.ActionLink,您可以随意编写它:

<a href="@Url.Action("Edit", "Home", new { application_id  = row.Application_ID })">Edit</a>

有些开发人员喜欢这种方式,因为它更类似于普通的Html,但结果与Html.ActionLink相同

答案 2 :(得分:0)

尝试了这项工作并且有效:

<a href="..@Url.Action("Edit",new{application_id})">Edit</a>

现在它将链接返回为主页/编辑/ x :)