2011-12-22 52 views
0

我对Url.Action有个疑问。用@ Url.Action生成URL

我的位置是在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 我又产生了相同的链接,该网址将成为:

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

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

你能给我一些提示或提示吗?在此先感谢

UPDATE: 这是我的路由:

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

回答

5

尝试使用路由:

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

仍犯规work..I了HTTP://本地主机/组/编辑/参数ID =参数 – Rivera 2011-12-22 11:23:13

+0

@Rivera,请问你的路由定义是什么样子?你有默认路由吗?更新您的路由,以便您在url中拥有一个id标记作为默认标识。 – 2011-12-22 11:23:50

+0

实际上我写了这条路线,我写错了吗?请看更新 – Rivera 2011-12-22 11:28:24

0

尝试使用类似的东西:

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

当你把参数使用“?”不是 “/”

http://localhost/Group/Edit?ParameterFromJs