2013-11-07 8 views
1

У меня есть две точки зрения в моем MVC 2Login и RegisterMVC Html Ошибка URL-адреса ActionLink?

В моей Login.aspx я добавил

<td>Click here to <%: Html.ActionLink("[Register]", "Register") %></td> 

Однако я получаю ReturnUrl=%2fViews%2fHome%2fRegister в моей адресной строке перенаправляет его обратно в Login.

Я сослался на этот Stack Overflow Question и внес соответствующие изменения в мою конфигурацию в сети, но не повезло.

Но когда в моей конфигурации я изменил,

<authentication mode="Forms" > 
    <forms loginUrl="~/Home/Login" timeout="2880" /> 

в

<authentication mode="Forms" > 
    <forms loginUrl="~/Home/Register" timeout="2880" /> 

Он работал.

Я ничего не изменил в файле Global.asax.cs. Как я могу перейти к своему регистру с помощью Html Action Link ??

Примечание: Я использую MVC 2

Спасибо Все

+0

Я думаю, что это должно быть '<% Html. ActionLink («Регистрация», «Регистрация»)%> ' – Vinh

+0

@Vinh Нет, он не работает –

+0

Хм, я забыл добавить: в коде, но я думаю, что вы это знаете, не так ли. Я также использую MVC 2, и я думаю, что в основном он должен работать '<%: Html.ActionLink (« текст »,« ActionMethod »,« ControllerName »)%>' – Vinh

ответ

1

Что приходит на ум, если вы проверили, если ваш метод регистра без AuthorizeAttribute? Возможно, вы положили AuthorizeAtrtribute поверх контроллера или вы создали BaseController с атрибутом, поэтому каждый контроллер, полученный из него, нуждается в аутентификации пользователя.

+1

+1 Это была моя первая мысль. Не устанавливайте атрибут [Авторизовать] над контроллером, если вам нужно получить доступ к методу без входа в систему. Вместо этого просто добавьте атрибут для каждого метода, который гость не может видеть. – Jannik

+0

В MVC2 [разрешить анонимность] не работает, иначе вам нужно просто украсить этот метод регистром, и ваше требование выполняется –