2011-12-22 90 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