2013-07-23 98 views
0

我想用我自己的登錄頁面進行驗證,但它給我這個錯誤使用創建登錄頁面進行驗證在ASP.NET MVC 4

說明:HTTP 404。您正在查找的資源(或它的一個依賴項)可能已被刪除,名稱已更改或暫時不可用。請檢查以下網址並確保它拼寫正確。

請求的URL:/帳號/ PasswordLock

任何人都知道爲什麼這裏是我的代碼,我創建了一個名爲PasswordLock.aspx新的一頁,在其登錄工具?一切工作正常與原始登錄表單,但不是我自己的。

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

,而這將正常工作

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

感謝

+0

您是否定義了一個'PasswordLock'動作?它是否用'AllowAnonymous'裝飾?您需要在MVC中採取行動,而不僅僅是視圖。 –

+0

@BradChristie對不起Brad,我是MVC的新手,你能解釋一下更多嗎?謝謝 – Mindless

+1

@yzwboy路由和控制器操作是ASP.NET MVC的基本部分。在你嘗試寫任何東西之前,你應該真正理解這些。 http://www.asp.net/mvc的教程是一個很好的開始。 – cadrell0

回答

1

在ASP.NET MVC,你的網址不映射到文件;他們映射到行動。所以,在~/Accounts/PasswordLock.aspx上有一個文件沒有幫助。你需要的是該URL的路由。路由通常設置在名爲RouteConfig的文件中,位於App_Start文件夾下,由Global.asax中的Application_Start()方法執行。通常的默認路由看起來是這樣的:

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

這意味着,去www.example.com/Accounts/PasswordLock將映射到一個名爲AccountsController控制器,並且該控制器稱爲PasswordLock上的方法的URL。此方法應返回一個View,默認情況下將稱爲PasswordLock.cshtml。請注意,新的Razor v2視圖引擎使用.cshtml文件而不是.aspx

這對於ASP.NET MVC編程來說非常重要;聽起來好像你在盲目跳躍。我強烈建議閱讀www.asp.net/mvc上的教程,尤其是controllers and routing上的教程。

+0

謝謝你們的幫助,經過一些更多的研究並試驗,我得到了視圖的一部分工作,但是有沒有像.aspx中的登錄工具爲剃刀cshtml的工具?還是你必須通過編碼自己設置自定義視圖? – Mindless

+0

你幾乎必須建立它。 MVC在程序員和實際的HTML之間幾乎沒有任何東西,因此對於登錄頁面,您將構建一個表單來執行標準的HTTP POST操作來提交各種值,然後您需要在服務器上使用一種方法接受這一點,並做出你的邏輯,以確定他們是否允許進入。 – anaximander

+0

好吧,那就是我所需要知道的,再次感謝 – Mindless

相關問題