1

Controllers / AccountController.csの場合:

public class AccountController : Controller
{
    //
    // GET: /Account/Login
    public ActionResult Login()
    {
        return View();
    }
    ...
}

web.configの場合:

<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" defaultUrl="~/Home/Index" name=".ASPXFORMSAUTH"/>
</authentication>
<authorization>
  <deny users="?"/>
</authorization>

Views / Account / Login.aspx内:

<script runat="server" type="text/C#">
    protected void Page_Load(object sender, EventArgs e) {...}
    protected void OnAuthenticate(object sender, AuthenticateEventArgs e) {...}
    protected void OnLoggedIn(object sender, EventArgs e){...}
    protected void OnLoginError(object sender, EventArgs e){...}
</script>

...

<asp:Login ID="login1" runat="server" 
           DestinationPageUrl="~/Views/Home/Index.aspx"
           OnAuthenticate="OnAuthenticate" 
           OnLoggedIn="OnLoggedIn" 
           OnLoginError="OnLoginError">
    ...
    <asp:Button ID="loginButton" runat="server" CommandName="Login1" Text="Login" ValidationGroup="login1" TabIndex="4" />
    ...
</asp:Login>

Page_Loadが呼び出されますがOnAuthenticate、、、、OnLoggedInおよびOnLoginErrorは呼び出されません。何故ですか?

MVCを使用していますが、[ログイン]ボタンをクリックすると、AccountControllerに戻ります。これによりLogin.aspxビューが返されるため、ログインページがリロードされます。

4

4 に答える 4

2

Web フォームと MVC を混在させていますが、それはできません。

于 2012-11-07T17:14:12.290 に答える
1

text/javascriptタグの代わりにそのコードにタグを付けtext/c#ましたrunat=server

于 2012-11-07T16:01:00.730 に答える
1

間違ったスクリプト タイプが type="text/C#" である必要があります

変化する

<script runat="server" type="text/javascript">

<script runat="server" type="text/C#">
于 2012-11-07T16:01:58.227 に答える
0

ASPX の代わりに Razor を使用して、すべてをゼロから書き直すことになりました。この質問の問題をどのように修正できたのかわかりません。まったく別のアプローチを取りました。

于 2012-11-12T17:45:27.863 に答える