私はMVC3プロジェクトに取り組んでおり、これを整理しようとしています。それはおそらく私が見落としている非常に単純なものですが、今はわかりません。問題は、Firefox で送信ボタンをクリックしても、文字通り何も起こらないことです。コンソールにエラーはありません。コントローラーにヒットすることはありません。まっすぐ何もありません。Chrome で XHR リクエストを監視していますが、想定どおりの動作をしています。firebug で XHR リクエストを監視していますが、何もありません。
ここにコードがあります..見る。-- これは単なる部分的なビューです。完全なビュー テンプレート ファイルの先頭に、jquery.ajax-unobtrusive.js、Microsoft.ajax.js、および Microsoft.mvcajx.js を含めました...この順序で
@using Infragistics.Web.Mvc
@model FuelPortal.Models.ViewModels.UserMaintenanceViewModel
@*changed this div and ajax update from wrapperData to wrapperData because having it as wrapperData was screwing up the JS on user submit, it had two of the same id's...*@
<style type="text/css">
input[type=text]
{
margin-bottom: 10px;
}
.disabled
{
background-color: #CECECE !important;
background-image: url('') !important;
}
</style>
<script src="../../Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script>
<div id="wrapperData2">
<!-- jared's table thingymabobber starts here yo -->
@if (Model != null)
{
<div class='frmBG'>
<table width='100%' style='margin-top: 10px'>
@using (Ajax.BeginForm("DetailUser", new AjaxOptions { UpdateTargetId = "wrapperData2", InsertionMode = InsertionMode.Replace, HttpMethod = "POST" }))
{
<tr>
<td><b>First Name:</b></td>
<td>@Html.TextBoxFor(mbox => mbox.User.firstName)</td>
</tr>
<tr>
<td><b>Last Name:</b></td>
<td>@Html.TextBoxFor(mbox => mbox.User.lastName)</td>
</tr>
<tr>
<td><b>Email:</b></td>
<td>@Html.TextBoxFor(mbox => mbox.User.email)</td>
</tr>
<tr>
<td><b>Username:</b></td>
<td>@Html.TextBoxFor(mbox => mbox.User.userName, new {@readonly="true", @class="disabled"})</td>
</tr>
<tr>
<td><b>Phone:</b></td>
<td>@Html.TextBoxFor(mbox => mbox.User.phone)</td>
</tr>
<tr>
<td><b>Account Expiration Date:</b></td>
<td>@Html.TextBoxFor(mbox => mbox.User.expireDate)</td>
</tr>
<tr>
<td>@Html.HiddenFor(mbox => mbox.User.LoginAccountId)</td>
<td><input type="submit" value='Save' /></td>
</tr>
}
</table>
</div>
}
</div>
コントローラー アクション -- 最初のアクションは、部分ビューが読み込まれたときに実行されるアクションです。HTTP POST オーバーロードは、部分ビューのフォームが送信されたときに実行されます。
//view details
public ActionResult DetailUser(int id)
{
UserMaintenanceViewModel model = new UserMaintenanceViewModel();
model = repository.getUserById(Session["UserId"].ToString(), id);
return PartialView("_ViewUserDetail", model);
}
[HttpPost]
public ActionResult DetailUser(int id, UserMaintenanceViewModel model)
{
var test = model.User.LoginAccountId;
var test2 = model.User.firstName;
var result = repository.updateUser(model.User);
return PartialView("_ViewUserDetail", model);
}
どんな助けでも大歓迎です、みんなに乾杯!