使用@Url.Action生成URL

本文关键字:URL 生成 Action @Url 使用 | 更新日期: 2023-09-27 18:18:31

我有一个关于Url.Action的问题

我的位置是在http://localhost/User/Edit上,在某些情况下,我必须生成一个javascript函数的链接,所以它会是这样的:

 return '<a href="@Url.Action("Group","Edit")/' +myParameterInJavascript +'>link</a>';

如果我看链接,它会好的,我得到:http://localhost/Group/Edit/ParameterFromJs
但是,当我现在的位置是http://localhost/Group/Edit/ParameterFromJs再次生成相同的链接,URL将变成:

http://localhost/Group/Edit/ParameterFromJs/ParameterFromJs

为什么我不直接得到url http://localhost/Group/Edit/ParameterFromJs?为什么我的动作是Edit/ParameterFromJs,而不仅仅是Edit?

你能给我一些提示吗?提前感谢

更新:这是我的路由:

routes.MapRoute("group-edit",
            "Group/Edit/{groupName}",
            new
            {
                controller = "Group",
                action = "Edit"
            }
        );

使用@Url.Action生成URL

尝试使用routing:

var url = '@Url.Action("Group", "Edit", new { id = "__id__" })'.replace('__id__', myParameterInJavascript);
return '<a href="' + url + '">link</a>';

试着这样写:

<a href="@Url.Action("Edit", "Group", new { EditParam = myParameterInJavascript })">

输入参数时使用"?"而不是"/"

 http://localhost/Group/Edit?ParameterFromJs