gpt4 book ai didi

c# - 如何在已经有一个键的情况下向模型状态添加一个值? MVC3

转载 作者:行者123 更新时间:2023-11-30 17:53:46 24 4
gpt4 key购买 nike

早上好,晚上好

我想知道如何将值添加到 ModelState 中的现有键。这是我已经完成的:

[HttpPost]
public ActionResult Create(VM_RoleGroup vm_roleGroup)
{
RoleGroup roleGroups = Mapper.Map<VM_RoleGroup, MAHAL_E_MA_Model.POCO.RoleGroup>(vm_roleGroup);
roleGroups.ModifiedDate = UtilityHands.GeneralTools.ConvertToShamsi(DateTime.Now);
roleGroups.Description = vm_roleGroup.Description ?? MAHAL_E_MA_Proj.ApplicationResources.GeneralResource.NoDescription;

**if (ModelState.ContainsKey("ModifiedDate") && ModelState["ModifiedDate"].Value == null)
{
ModelState["ModifiedDate"].Value = new ValueProviderResult("", roleGroups.ModifiedDate, CultureInfo.CurrentUICulture);
}
else if (!ModelState.ContainsKey("ModifiedDate"))
{
ModelState.Add("ModifiedDate", new ModelState { Value = new ValueProviderResult("", roleGroups.ModifiedDate, CultureInfo.CurrentUICulture) });
}**

if (ModelState.IsValid)
{
unitOfWork.RoleGroupRepository.InsertData(roleGroups);
unitOfWork.RoleGroupRepository.Save();
return RedirectToAction("Index");
}

return View(vm_roleGroup);
}

但是 ModelState 仍然无效,因为它缺少名为“ModifiedDate”的键的值。请记住,该值不是由用户在客户端设置的。它需要以编程方式设置。顺便说一下,'ModifiedDate' 是数据库中的一个必填字段。

有什么想法吗?提前致谢

最佳答案

您应该将 ModifiedDate 作为 View 模型的一部分传递,然后在 Controller 中将其覆盖为 DateTime.Today。

即。预填充 View

@Html.Hidden(Model.ModifiedDate,DateTime.Today);

因为这不安全,所以在 Controller 中覆盖它

roleGroups.ModifiedDate = DateTime.Today;

或者如果它是整个应用程序(在所有模型上)的通用字段,您实际上可以在映射器中添加自定义代码来执行此操作,但我不确定具体情况。

关于c# - 如何在已经有一个键的情况下向模型状态添加一个值? MVC3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16979470/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com