私は ASP.NET MVC 4 を初めて使用します。jquery モバイルで簡単なログイン フォームを作成しようとしています。ユーザーが送信をクリックするとページが「POST」される、Razor を使用した単純な jquerymobile MVC 4 ページを作成したいと思います。
しかし、「ログイン」ボタン(送信ボタン)をクリックするたびに、コントローラーの「GET」アクションが実行され続けます。
また、リクエストを「GET」として表示しているfirebugも、私が間違っていたことについてのガイダンスを教えてください。:(
以下は私のコードです、よろしくお願いします。
私の見解
@model com.mywebsite.Models.LoginModel
<div data-role="page" data-theme="a" id="main">
<div data-role="header" id="topbar" data-theme="b">
<a href="index.html" class="back" data-direction="reverse"></a>
<div class="header_title">Login</div>
</div>
<div data-role="content" data-theme="e" id="content">
@using (Html.BeginForm("Login", "User", FormMethod.Post, new Dictionary<string,Object> { {"enctype","multipart/form-data"}, {"data-ajax","false"}}))
{
@Html.ValidationSummary(true, "Login failed. Check your login details.");
<fieldset>
<div class="container1 " >
<div class="fblogin"></div>
<div class="or">Or</div>
<div class="container1_1">
<legend>Login</legend>
<div class="textwrapper grid">
<div class="leftcolumn"><label for="name">Email:</label></div>
<div class="leftcolumn">
@Html.TextBoxFor(u => u.UserName, new Dictionary<string,Object> { {"data-theme","d"}, {"id","e"}, {"type","email"}, {"size","20"}})
</div>
</div>
</div>
<div class="textwrapper container1_1">
<div class="leftcolumn"><label for="password">Password:</label></div>
<div class="leftcolumn">
@Html.PasswordFor(u => u.Password, new Dictionary<string,Object> { {"data-theme","d"}, {"id","p"}, {"type","password"}})
</div>
</div>
</div>
<input type="submit" value="Log In" rel="external" data-ajax="false" />
<div class="fpwd"><a href="index.html" data-theme="d">Forgot Password?</a></div>
<div class="container1">
<div class="container1_1">
<legend>Don't have an account yet?</legend>
<ul data-role="listview" data-inset="true" data-theme="d" class="nopadding">
<li ><a href="signup.html"><div class="icon_signup_list"></div>Register</a></li>
</ul>
</div>
</div>
</fieldset>
}
<!-- end content-->
</div>
@Html.Partial("~/Views/Shared/_Footer.cshtml")
<!--end page-->
</div>
My Model (デフォルトの MVC アプリケーション テンプレートと同じ)
public class LoginModel
{
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[Display(Name = "Remember me?")]
public bool RememberMe { get; set; }
}
私のコントローラー
public class UserController : Controller
{
// GET: /User/
public ActionResult Login(string returnUrl)
{
return View();
}
// POST: /User/Login/
[HttpPost]
public ActionResult Login(LoginModel user)
{
var obj = UserModels.GetUser(user.UserName, user.Password);
return View();
}
}
私の Global.asax.cs
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
AuthConfig.RegisterAuth();
}
protected void Application_BeginRequest()
{
const string culture = "id";
CultureInfo ci = CultureInfo.GetCultureInfo(culture);
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;
}
}