使用@ Url.Action生成网址

时间:2011-12-22 11:05:03

标签: c# .net asp.net-mvc asp.net-mvc-3 razor

我对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

为什么我不拿到网址http://localhost/Group/Edit/ParameterFromJs? 为什么我的动作是Edit / ParameterFromJs,而不仅仅是编辑?

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

更新: 这是我的路线:

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

2 个答案:

答案 0 :(得分:5)

尝试使用路由:

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

答案 1 :(得分:0)

尝试使用类似的东西:

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

当你输入参数时使用“?”不是“/”

 http://localhost/Group/Edit?ParameterFromJs