如何解决无法在Razor页面中的表单传递的OnPost上保存或使用绑定模型数据
我在剃刀页面的EditUserProfile中有一个问题,因此在页面中显示用户信息没有问题,但是当我按下编辑按钮时,我通过表单获取了用户信息,但无法保存或使用它。
代码
页面
我什至试图将用户名保存在变量中,但这是发生了什么
通过表单传递的用户名
试图保存
解决方法
方法中的_User和var user可能指向内存中的同一对象。我不确定,因为并非所有代码都可见。
这完全取决于userRepository
中的代码。您正在使用的ORM可能具有某种缓存,这可能会导致某些奇怪的行为。
在OnGet方法中,克隆您从GetUserByUserId
到_User属性的用户。
public void OnGet()
{
var user = _userRepositiory.GetUserByUserName(HttpContext.User.GetUserId());
_User = new User(){
// set all properties here
};
}
,
首先,您的_User.UserName =“ saeed_01”,并且用户名在图片中为空,这是因为此代码行尚未执行。当您执行该代码并转到下一行代码时,可以看到用户名是“ saeed_01”。
如果要保存编辑后的用户。我想可以像这样在'qweb'
中更改Save
:
UserRepository
并更改
public async Task Save(User user)
{
try
{
_context.Update(user);
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
throw;
}
}
到
_userRepositiory.Save();
更新:
然后您可以看到用户名不为空
这是一个演示: 用户:
await _userRepositiory.Save(user);
动作:
public class User {
public int UserId { get; set; }
public string UserName { get; set; }
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。