2013-07-12 20 views
5

Mam prosty pogląd, że tworzy link jeśli logowanie się powiedzie i znajduje się pod/login:Html.ActionLink wywołać działania z innego kontrolera, który znajduje się w innym folderze

<div> 
@Html.ActionLink("Add a new Organization", "AddOrganization", 
      "/Setup/AddOrganizationController", new { id = Session["ID"] }, null) 
</div> 

Po czytając inne podobne problemy, próbowałem go dodając wartość zerową po, jak również kilka innych przeciążeń, ale nie mogę uzyskać poprawnego działania łącza. Kiedy kliknę link, zabieram mnie do

Który opuszcza część localhost, która musi tam być. Bez null na końcu, próbuje wysłać mnie do

/Login/AddOrganization 

Wszystko czego chcę to link, który będzie realizowany w ramach działania regulatora AddOrganizationController który jest w katalogu/Setup. Łącze powinno również przekazać identyfikator sesji do kontrolera jako argument. Jak mogę to zrobić?

+0

Używasz Areas? – mitomed

+0

Naprawdę nie wiem, co to jest, więc myślę, że nie jestem. – SantasNotReal

+0

Nie mogę odpowiedzieć na twoje pytanie, nawet nie znam struktury twojego projektu, ale myślę, że warto się na nie spojrzeć. Może ta odpowiedź pomoże Ci http://stackoverflow.com/a/6555971/1179061 – mitomed

Odpowiedz

6

Jeśli jest w tym samym Area następnie można po prostu zrobić:

@Html.ActionLink("Add a new Organization", "AddOrganization", "Organizations", new { id = Session["ID"] }) 

gdzie „Organizacje” to nazwa kontrolera.

W przeciwnym razie, jeśli jest w innym obszarze byś zrobił coś podobnego

@Html.ActionLink("Add a new Organization", "AddOrganization", "Organizations", new { area = "areaName", id = Session["ID"] }, null)