2010-12-20 9 views
1

こんにちは誰か私にこの問題を教えてください、それを修正する方法があります。asp.net mvcでajaxを使用して更新

私は、ajaxを使ってページの一部を更新しようとしています。新しいmvcプロジェクトに付属している基本コードを使用しています。

<span id="error"/> 
@using (Ajax.BeginForm("LogOn", "Account", new AjaxOptions { UpdateTargetId="error"})) { 
    <div> 
     <fieldset> 
      <legend>Account Information</legend> 

      <div class="editor-label"> 
       @Html.LabelFor(m => m.UserName) 
      </div> 
      <div class="editor-field"> 
       @Html.TextBoxFor(m => m.UserName) 
       @Html.ValidationMessageFor(m => m.UserName) 
      </div> 

      <div class="editor-label"> 
       @Html.LabelFor(m => m.Password) 
      </div> 
      <div class="editor-field"> 
       @Html.PasswordFor(m => m.Password) 
       @Html.ValidationMessageFor(m => m.Password) 
      </div> 

      <div class="editor-label"> 
       @Html.CheckBoxFor(m => m.RememberMe) 
       @Html.LabelFor(m => m.RememberMe) 
      </div> 

      <p> 
        <input type="submit" value="Log On" /> 
      </p> 
     </fieldset> 
    </div> 
} 

をし、そのようなコントローラ:

ログオンページには、これを持っている

 [HttpPost] 
     public string LogOn(LogOnModel model, string returnUrl) 
     { 

      if (ModelState.IsValid) 
      { 
       if (MembershipService.ValidateUser(model.UserName, model.Password)) 
       { 
        FormsService.SignIn(model.UserName, model.RememberMe); 
        if (Url.IsLocalUrl(returnUrl)) 
        { 
         Redirect(returnUrl); 
        } 
        else 
        { 
         RedirectToAction("Index", "Home"); 
        } 
       } 
       else 
       { 
        ModelState.AddModelError("", "The user name or password provided is incorrect."); 
       } 
      } 

      return "The user name or password provided is incorrect."; 
     } 

基本的に私はモーダルポップアップにログインフォームを埋め込まれている行っています。 入力されたユーザー資格情報が失敗した場合は、モーダルポップアップ内にエラーが表示され、別のページには表示されません。

上記のコードは、「提供されたユーザー名またはパスワードが間違っています」というテキストの空白ページを作成しているだけです...モーダルダイアログ(jQuery)に表示する必要があります。

+0

あなたは私たちにLogonModelを表示することができますか?私はそれがちょうどユーザー名、パスワードとRememberMeだと仮定しますが、使用されているDataAnnotationsはありますか?おそらく、あなたがModelStateをチェックしているならば。 –

+0

logonModelは、新しいmvcプロジェクト – raklos

答えて

0

よくある質問は、これを実行しようとしているページにスクリプトが追加されていますか?第二に、あなたがHTTPSに投稿している場合(あなたはそうですか?)、あなたのスクリプトもHTTPSでなければなりません。そうしないと、セキュリティエラーが発生します。

+0

を使ってすぐに提供されます。スクリプトが追加され、新しいプロジェクトに付属の標準の初期設定のログインコードが使用されます。 – raklos