私はマスターページを持って、私の見解では、\共有フォルダと呼ばれていません。 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は起動しますが、インデックス画面が更新されるので、私は思っています。しかし、上記の方法でのブレークポイントは決して発生しません。
私は間違っていますか?
は、フォームのhtmlタグは、それが生成されます際にどのように見えるかとも送信ボタンのHTMLはどのように見えるかを投稿することができますか? – Vadim