我在ASP.NET Core项目中创建了模型。该模型具有“Id”属性。当我想在数据库中保存一个模型时,它说模型的ID为空。下面是代码:ASP.NET Core - 模型的ID /密钥无法获得值
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> SaveMessage(MessageViewModel model, string returnUrl = null)
{
ViewData["ReturnUrl"] = returnUrl;
if (ModelState.IsValid)
{
var message = new MessageModel
{
SenderName = await _userManager.GetUserNameAsync(await _userManager.GetUserAsync(User)),
Title = model.Title,
Email = model.Email,
Message = model.Message,
SavedDate = DateTime.Now,
Sent = false
};
var userMessage = new UserMessage
{
ApplicationUser = await _userManager.GetUserAsync(User),
MessageModel = message
};
_context.MessageModel.Add(message);
_context.UserMessage.Add(userMessage);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(HomeController.Home), "Home");
}
return RedirectToAction(nameof(MessageController.EditMessage), "Message", model);
}
这里是模型:
public class MessageModel
{
public string Id { get; set; }
public string SenderName { get; set; }
public string Title { get; set; }
public string Email { get; set; }
public string Message { get; set; }
public DateTime SavedDate { get; set; }
public bool Sent { get; set; }
public List<UserMessage> UserMessages { get; set; }
}
我怎么可以给一个值的id? 谢谢!
请发布相关型号代码,并告诉我们哪个型号有错误。 –
如果Id不在模型中。它意味着你需要在视图中提供值,例如通过使用输入隐藏的'@ Html.Hidden()' –