2011-12-22 3 views
0

У меня есть вопрос о Url.Action.генерировать URL с @ Url.Action

Моей позиции на http://localhost/User/Edit и для некоторых случаев я должен сгенерировать ссылку с яваскриптом функцией, так что это будет так:

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?

Можете ли вы дать мне подсказку или советы? Заранее спасибо

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: // локальный/Group/Edit/Param идентификатор = Param – Rivera

+0

@Rivera, как делает ваш взгляд определение маршрута, как? У вас есть маршрут по умолчанию? Обновите маршруты, чтобы у вас был маркер id в URL-адресе по умолчанию. –

+0

На самом деле я написал маршрут, я ошибся на указанном маршруте? См. Update please – Rivera

0

Попробуйте использовать что-то вроде этого:

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

Когда Вы кладете параметр используется?? " не "/"

http://localhost/Group/Edit?ParameterFromJs 
Смежные вопросы