<div id="myDiv">
<ul class="purpose">
@{
var purpose = CommonMethod.getPurpose("");
for(int i=0;i<10 && i<purpose.Count();i++)
{
<li><a href="#" >@purpose[i].Text</a></li>
}
}
</ul>
</div>
リストから上記の単一の目的を選択すると、更新用の ajax フォームの下に表示されます
@using (Ajax.BeginForm("UpdatePurpose", "Admin", new AjaxOptions { UpdateTargetId = "updateDiv" }))
{
<div class="profile">
@Html.Hidden("PurposeID")
<table>
<tr>
<td>Purpose</td>
<td>:</td>
<td> width="30%">@Html.TextBox("Description")</td>
</tr>
<tr>
<td>Admin Password</td>
<td>:</td>
<td>@Html.Password("Passwd1")</td>
</tr>
</table>
<input type="submit" value="submit" />
</div>
}
Subting below アクションが呼び出された後
[HttpPost]
public ActionResult UpdatePurpose(string PurposeID,string Description, string Passwd1)
{
if (Request.IsAjaxRequest())
{
if (!Membership.ValidateUser(User.Identity.Name, Passwd1))
{
ModelState.AddModelError("", "Invalid Admin Password");
}
if (ModelState.IsValid)
{
var id = Convert.ToByte(PurposeID);
var pur = db.Purposes.Where(p => p.PurposeID == id).SingleOrDefault();
pur.Description = Description;
db.SaveChanges();
ViewBag.Result = "Data Updated Successfully.";
return View();
}
}
return View();
}
上記の ajax フォーム Updatepurpose を送信する際に、管理者パスワードが無効な場合は検証メッセージ エラーを表示し、modelstate が有効な場合は myDiv コンテンツを読み込み、ユーザーに更新成功メッセージを表示したい