【问题标题】:MVC Html ActionLink Url error?MVC Html ActionLink URL 错误?
【发布时间】:2013-11-07 06:57:38
【问题描述】:

我的 MVC 2 LoginRegister 有两个视图

在我的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

谢谢大家

【问题讨论】:

  • 我觉得应该是&lt;% Html.ActionLink("Register","Register") %&gt;
  • @Vinh 不,它不起作用
  • 嗯,我忘了在代码中添加 :,但我想你知道,不是吗。我也使用 MVC 2,我认为基本上它应该可以工作 &lt;%: Html.ActionLink("text", "ActionMethod", "ControllerName")%&gt;
  • 如果是这样,我认为您应该在注册页面中检查授权,控制器,这可能会导致您的问题。如果您使用 ActionLink 的方式是正确的,那么一定有问题

标签: c# asp.net asp.net-mvc-2 html.actionlink


【解决方案1】:

如果您检查了您的注册方法是否没有 AuthorizeAttribute,您会想到什么?也许您已经将 AuthorizeAtrtribute 放在控制器之上,或者您已经创建了具有该属性的 BaseController,因此从它派生的每个控制器都需要对用户进行身份验证

【讨论】:

  • +1 这也是我的第一个想法。如果您需要在不登录的情况下访问方法,请不要在控制器上设置 [Authorize] 属性。相反,只需在不允许访客查看的每个方法上添加一个属性。
  • 在 MVC2 [允许匿名] 中不起作用,否则您只需用此装饰注册方法即可满足您的要求
猜你喜欢
  • 2015-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-08
  • 2012-04-20
  • 1970-01-01
  • 2015-06-18
  • 2011-11-11
相关资源
最近更新 更多