0

我想使用我自己的登录页面进行身份验证,但它给了我这个错误

说明:HTTP 404。您要查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请查看以下 URL 并确保其拼写正确。

请求的 URL:/Account/PasswordLock

任何人都知道为什么?这是我的代码,我创建了一个名为 PasswordLock.aspx 的新页面,其中包含一个登录工具。原始登录表单一切正常,但不是我自己的。

<authentication mode="Forms">
  <forms loginUrl="~/Account/PasswordLock" timeout="2880" />
</authentication>

虽然这会很好

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

谢谢

4

1 回答 1

1

在 ASP.NET MVC 中,您的 URL 不映射到文件;它们映射到动作。所以,有一个文件~/Accounts/PasswordLock.aspx没有帮助。您需要的是该 URL 的路由。路由通常设置在 App_Start 文件夹下名为 RouteConfig 的文件中,由Application_Start()Global.asax 中的方法执行。通常的默认路由如下所示:

routes.MapRoute(
    name: "default",
    routeTemplate: "{controller}/{action}/{id}",
    defaults: new { id = RouteParameter.Optional });

这意味着进入 www.example.com/Accounts/PasswordLock 的 URL 将映射到一个名为 的控制器AccountsController,以及该控制器上的一个名为 的方法PasswordLock。此方法应返回View默认情况下将调用的 a PasswordLock.cshtml。请注意,新的 Razor v2 视图引擎使用.cshtml文件而不是.aspx.

这对于 ASP.NET MVC 编程来说都是非常基础的;听起来你好像是在盲目地跳进去。我强烈建议阅读www.asp.net/mvc上的教程,尤其是关于控制器和路由的教程。

于 2013-07-23T14:25:51.640 回答