如何添加一个值到模型状态,而已经有一个键?MVC3

本文关键字:有一个 状态 MVC3 添加 何添加 一个 模型 | 更新日期: 2023-09-27 18:17:25

早上好,晚上好还是晚上好

我想知道如何向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'是数据库中必需的字段。

有什么想法吗?提前感谢

如何添加一个值到模型状态,而已经有一个键?MVC3

您应该传递ModifiedDate作为视图模型的一部分,然后将其覆盖为DateTime。今天在控制器

ie。预填充视图

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

,因为这是不安全的,所以在控制器

中覆盖它
roleGroups.ModifiedDate = DateTime.Today;

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