ASP.NET MVC更改數據庫值我有一個非常簡單的問題。我有一個表單,如果您選中複選框並提交表單,它會將值更改爲true(默認爲false)。目前它不適合我。所以我在問我該怎麼做?當複選框被選中
這裏的一些事情,我該怎麼辦他們。有一個值「IsConfirmed」
public virtual bool IsConfirmed {get;set;}
而且我有一個簡單的HttpPost方法。
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Edit([Bind(Include = "UserName,Id,Email")] ApplicationUser formuser, string id, string RoleId)
{
var role = new ApplicationUser() { Id = formuser.Id, Email = formuser.Email, IsConfirmed = formuser.IsConfirmed };
await UserManager.UpdateAsync(role);
return RedirectToAction("Index");
}
這是我的看法
@model CPO.Models.ApplicationUser
@{
ViewBag.Title = "Edit";
}
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary()
@Html.HiddenFor(model => model.Id)
<table class="table table-bordered table-hover">
<tr>
<th>
@Html.DisplayNameFor(model => model.Email)
</th>
<th>
@Html.DisplayNameFor(model => model.UserName)
</th>
<th>
@Html.DisplayNameFor(model => model.FirstName)
</th>
<th>
@Html.DisplayNameFor(model => model.LastName)
</th>
</tr>
<tr>
<td>
@Html.HiddenFor(model => model.Email)
@Html.DisplayFor(model => model.Email)
@Html.ValidationMessageFor(m => m.Email, "", new { @class = "text-danger" })
</td>
<td>
@Html.HiddenFor(model => model.UserName)
@Html.DisplayFor(model => model.UserName)
@Html.ValidationMessageFor(m => m.UserName, "", new { @class = "text-danger" })
</td>
<td>
@Html.HiddenFor(model => model.FirstName)
@Html.DisplayFor(model => model.FirstName)
</td>
<td>
@Html.HiddenFor(model => model.LastName)
@Html.DisplayFor(model => model.LastName)
</td>
<td>
@Html.DropDownList("RoleId", "Select Role")
</td>
<td>
@Html.EditorFor(model => model.IsConfirmed)
</td>
<td>
<input type="submit" value="Edit" class="btn btn-default"/>
</td>
</tr>
</table>
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
古怪,但它不工作,我不知道爲什麼,也許我錯過了定義的東西,但該模型得到的它的價值,即使它是假的檢查。
任何幫助,高度讚賞,如果我犯了錯誤,請善待我寫的評論讓他們,我會解決他們
當窗體控件
RoleId
你調試,其中*完全*是丟失的價值? POST請求中包含什麼?控制器動作收到的'model'對象中有什麼? 'model.ToDomainModel()'的結果是什麼?佣金對象中有什麼? – David你也可以顯示你的完整剃鬚刀代碼嗎? –
'model.IsConfirmed'的值,如果該複選框是基於你已經顯示的代碼進行覈對將TRUE;。你是指'commission.IsConfirmed'的價值? –