パーシャルビュー(ログイン、ユーザー名、パスワード、送信ボタン)があり、パーシャルビューが_layout(materpage)で使用されています。MVC3パーシャルビューメソッドが起動しない
だから、私の_layoutページに、私が持っている:
<div style="text-align: right">
@Html.Partial("_LoginPartial")
</div>
私_LoginPartialは、次のコードがあります。
@if (Request.IsAuthenticated)
{
<textarea>Welcome!
[ @Html.ActionLink("Log Off", "Logout", "Account")]</textarea>
}
else
{
@Html.Partial("~/Views/Account/Index.cshtml")
}
インデックスファイルログインボックスを表示するには、次のようになります
@using GalleryPresentation.Models
@model LoginModel
<script src="../../Scripts/jquery.validate.min.js" type="text/javascript"></script>
@using (Html.BeginForm("index", "Account"))
{
<table>
<tr>
<td>@Html.LabelFor(m => m.Username)</td>
<td>@Html.TextBoxFor(m => m.Username)</td>
</tr>
<tr>
<td>@Html.LabelFor(m => m.Password)</td>
<td>@Html.PasswordFor(m => m.Password) kjkj</td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Login"/></td>
</tr>
<tr>
<td colspan="2">@Html.ValidationSummary()</td>
</tr>
</table>
}
私のAccountCOntrollerには、次のコードがあります。
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(LoginModel loginModel)
{
if(ModelState.IsValid)
{
var g = new GallaryImage();
var user = g.LoginUser(loginModel.Username, loginModel.Password);
if(user != null)
{
FormsAuthentication.SetAuthCookie(user.username, false);
return RedirectToAction("Index", "Home");
}
ModelState.AddModelError("", "Invalid Username/Password");
}
return View(loginModel);
}
public ActionResult Logout()
{
FormsAuthentication.SignOut();
return RedirectToAction("Index", "Home");
}
すべてのメソッドにブレークポイントがありますが、決してヒットしません。送信ボタンを押すと、URLが次のように変更されます。
http://localhost:8741/?Username=myusername&Password=mypassword
誰かが私が行っているエラーを見つけられますか?
それを試しましたが、まだブレークポイントに当たっていません。フォーム投稿はデフォルトで投稿されると思った? – Craig
@Craigフォームが 'http:// localhost:8741 /?Username = myusername&Password = mypassword'にリダイレクトされている場合、ブラウザはGETフォームの送信をクエリパラメータに変換するので、HTTP GETリクエストを示します。デバッグを支援するために、ブラウザが行うネットワーク要求を調べることができます。これは、ブラウザに付属している開発ツールや、Fiddlerのようなサードパーティのツールを使用して行うことができます。 –
スティーブン - フィドラーがお手伝いしました。私はそれが