2011-01-13 15 views
2

私はマスターページを持って、私の見解では、\共有フォルダと呼ばれていません。 Views \ Homeフォルダにindex.aspxがあります。私はViews \ Userフォルダにlogin.ascx(ユーザコントロール)を持っています。 ASCXファイルが私のマスターページに追加されます。ASP.Net MVCコントローラは

<% Html.RenderPartial(@"~\Views\User\login.ascx");%> 

ascxファイル内のコードは私のコントローラのフォルダ内のUserController.csに提出するフォームを指しています。私は、コントローラ名やメソッドをクリック+ CTRL場合

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<BudgieMoneySite.Models.SiteUserLoginModel>" %> 
<% using (Html.BeginForm("UserLogin", "User")) 
    {%> 
<table width="300"> 
    <tr> 
     <td colspan="3" align="center"> 
      User Login 
     </td> 
    </tr> 
    <tr> 
     <td align="right"> 
      <%=Html.LabelFor(m => m.Username)%> 
     </td> 
     <td> 
      <%=Html.TextBoxFor(m => m.Username)%> 
     </td> 
     <td> 
     </td> 
    </tr> 
    <tr> 
     <td align="right"> 
      <%=Html.LabelFor(m => m.Password)%> 
     </td> 
     <td> 
      <%=Html.PasswordFor(m => m.Password)%> 
     </td> 
     <td> 
     </td> 
    </tr> 
    <tr> 
     <td> 
     </td> 
     <td> 
      <%=Html.CheckBoxFor(m => m.RemeberMe)%><%=Html.LabelFor(m => m.RemeberMe)%> 
     </td> 
    </tr> 
    <tr> 
     <td colspan="2"> 
     </td> 
     <td colspan="3" align="right"> 
      <input id="Submit1" type="submit" runat="server" value="Login" /> 
     </td> 
    </tr> 
</table> 
<% 
    } // End Using.%> 

は、Html.BeginFormエリアで、それは私がSybmitをクリックしたときに呼び出されるべきである私の方法に私を取る:

はここでASCXです。しかし

 [HttpPost] 
    public ActionResult UserLogin(SiteUserLoginModel model) 
    { 
     try 
     { 
      if (MembershipService.ValidateUser(model.Username, model.Password)) 
      { 
       FormService.SignIn(model.Username, model.RemeberMe); 
       PersonDto user = SiteUserLoginModel.LoadLoggedInUserDetails(model.Username); 
       Session.Add("current_firstname", user.Firstname); 
       Session.Add("current_userid", user.PersonId); 
      } 
      return RedirectToAction("Index", "Home"); 
     } 
     catch (ArgumentException e) 
     { 
      ViewData["ErrorMessage"] = e.Message; 
      return RedirectToAction("Index", "Home"); 
     } 
    } 

、私は、実行時に[送信]ボタンをクリックすると、このメソッドが呼び出されることはありません:これは私のUserControllerでに、呼び出す必要があり

方法は、定義されたこのコードを持っています。画面はちょうどリフレッシュされました。 HomeControllerは起動しますが、インデックス画面が更新されるので、私は思っています。しかし、上記の方法でのブレークポイントは決して発生しません。

私は間違っていますか?

+0

は、フォームのhtmlタグは、それが生成されます際にどのように見えるかとも送信ボタンのHTMLはどのように見えるかを投稿することができますか? – Vadim

答えて

1

Guysは、私は問題を発見し、それは私が2週間前に持っていた問題ですが、totoally忘れてしまいました。マスターページにフォームタグがありました!そして、ユーザーコントロールのフォームタグは、マスターページのフォームタグによって隠されていました。私はマスターページからFormタグを削除し、解決しました。

1

私はあなたの送信ボタンからrunat="server"属性を削除開始する... BeginForm

<input id="Submit1" type="submit" value="Login" /> 
+0

私はそれを削除しましたが、まだ動作していません。 – Craig

1

あなたのフォームをPOSTに設定されていません。 Html.BeginForm("UserLogin", "User", FormMethod.Post)

はこれを試してみてください。

+0

mvcフォームはデフォルトでPOSTです。 –

+0

ええ、とにかく試しましたが、まだ動作しません。 – Craig

関連する問題