【问题标题】:asp.net mvc action link with id before action操作前带有 id 的 asp.net mvc 操作链接
【发布时间】:2013-08-20 14:36:09
【问题描述】:

我的 mvc4 项目中有以下路由配置:

routes.MapRoute(
            name: "single",
            url: "{controller}/{id}",
            defaults: new { controller = "Home", action = "Details" },
            constraints: new { id = @"^[0-9a-fA-F]{8}[-]?([0-9a-fA-F]{4}[-]?){3}[0-9a-fA-F]{12}$" }
        );

        routes.MapRoute(
            name: "singleCreate",
            url: "{controller}/{id}/{action}",
            defaults: new { controller = "GalleryImage", action = "Create" },
            constraints: new { id = @"^[0-9a-fA-F]{8}[-]?([0-9a-fA-F]{4}[-]?){3}[0-9a-fA-F]{12}$" }
        );

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

现在我想创建一个指向“singleCreate”路线的链接。

我试过了:

@Html.ActionLink("Add Image", "Create", "GalleryImage", new { id = Model.Id }, null)

但这并不像我预期的那样工作。我得到一个没有动作的链接,如下所示:

/GalleryImage/cc66338c-6500-4967-8be9-a8a6948f22c4

链接应该是这样的:

/GalleryImage/cc66338c-6500-4967-8be9-a8a6948f22c4/Create

有没有人已经创建了这样的链接并且可以给我一些建议? 提前致谢。

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-routing actionlink


    【解决方案1】:

    试试这个:

    @Html.RouteLink("Add Image", "singleCreate", new { controller = "GalleryImage", action = "Create", id = Model.Id })
    

    【讨论】:

    • 我试过了。现在我得到了一个错误控制器的链接:localhost:4427/Gallery/cc66338c-6500-4967-8be9-a8a6948f22c4
    • 真正令人惊讶的是,当我为 ActionLink 使用不同的操作时,该操作被正确地附加在链接的末尾。我必须重命名我的视图,但随后一切正常。如果我保留原始视图,我不明白会出现什么问题。
    • 还是没有运气:/GalleryImage/cc66338c-6500-4967-8be9-a8a6948f22c4
    猜你喜欢
    • 2011-01-29
    • 2017-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    相关资源
    最近更新 更多