내 Views \ Shared 폴더에 MasterPage가 있습니다. 내 Views \ Home 폴더에 index.aspx 있습니다. 내 Views \ User 폴더에 login.ascx (사용자 정의 컨트롤)이 있습니다. ASCX 파일 내 MasterPage에 추가됩니다 다음 ASCX에ASP.Net MVC 컨트롤러가 호출되지 않습니다.
<% Html.RenderPartial(@"~\Views\User\login.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에, 호출해야
방법은 정의 된이 코드를 가지고있다. 화면이 새로 고쳐졌습니다. IndexController가 새로 고침되면 HomeController가 실행됩니다. 하지만 위의 메서드에서 중단 점이 발생하지 않습니다.
내가 뭘 잘못하고 있니? 나는 당신의 제출 버튼에서 runat="server"
속성을 제거하기 시작할 것
양식 html 태그가 생성 될 때 표시되는 내용과 제출 버튼 html의 모양을 게시 할 수 있습니까? – Vadim