- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我用这样的模型绑定(bind)更新我的数据库:
var adminUpdate = await _context.Admins.FindAsync(Id);
if (!String.IsNullOrEmpty(Password)) {
if (Password != PasswordCheck) {
ModelState.AddModelError("Password", "Passwords do not match");
} else {
byte[] data = Encoding.UTF8.GetBytes(Password + Configuration["SomeLocation:SomeKey"]);
data = SHA512.Create().ComputeHash(data);
password = Convert.ToBase64String(data);
}
} else {
password = adminUpdate.Password;
}
if (!ModelState.IsValid) {
return Page();
}
if (await TryUpdateModelAsync(
adminUpdate,
"",
a => a.FirstName,
a => a.LastName,
a => a.Email,
a => a.Password, // must be the value of "password"
a => a.Status,
a => a.CompanyId
))
{
await _context.SaveChangesAsync();
return Redirect("/admin");
}
我的问题是,我需要在数据库密码字段中插入“密码”变量而不是 a.Password。
我该怎么做?
最佳答案
在您的示例中,对 TryUpdateModelAsync
的调用最终会根据 ModelState
中的值设置您的 adminUpdate
实例的属性。如果您想为 Password
设置另一个值,您可以在调用 TryUpdateModelAsync
之后这样做,如下所示:
if (await TryUpdateModelAsync(
adminUpdate,
"",
a => a.FirstName,
a => a.LastName,
a => a.Email,
a => a.Status,
a => a.CompanyId
))
{
adminUpdate.Password = password;
await _context.SaveChangesAsync();
return Redirect("/admin");
}
在上面的示例中,我还从 TryUpdateModelAsync
中删除了 a => a.Password
,因为它现在是多余的 - 设置的任何值都会被覆盖调用 SaveChangesAsync
之前的显式赋值。
关于c# - 具有修改值的 TryUpdateModelAsync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53672503/
我有一个 TryUpdateModelAsync 调用,一旦失败,只会返回 false。目前还不清楚它失败的原因。我怎样才能获得更多信息? if (await TryUpdateModelAsync(
我有一个 TryUpdateModelAsync 调用,一旦失败,只会返回 false。目前还不清楚它失败的原因。我怎样才能获得更多信息? if (await TryUpdateModelAsync(
我用这样的模型绑定(bind)更新我的数据库: var adminUpdate = await _context.Admins.FindAsync(Id); if (!String.IsNullOrE
我有以下代码: if (await TryUpdateModelAsync( hostToUpdate, "Host",
所以我正在这样做 microsoft tutorial在带有 EF 6 的 ASP.NET Core 上,它刚刚通过编辑 Controller 更新了一个模型。 这段代码让我非常困惑,我想(也许希望)
假设我有一个包含以下模型结构的表单: TestRecord.cs class TestRecord { public string Id { get; set; } public st
TryUpdateModelAsync 是抽象类 PageModel 的一个内部保护方法,在我看来,这使得它不可模拟。是否有任何方法可以对涉及此方法的任何操作进行单元测试? 我在网上看到这个解决方案:
我是一名优秀的程序员,十分优秀!