안녕하세요, 저녁이나 밤모델 상태가 이미있는 동안 값을 모델 상태에 추가하는 방법은 무엇입니까? MVC3
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'는 이고 데이터베이스에는 필드가 필요합니다.
어떤 아이디어가 탄원합니까? 미리 감사드립니다.
ViewModel에 ModifiedDate 필드가 있습니까? 키가 없으면 왜 모델 상태가 유효하지 않다고 생각합니까? – user1778606
@ user1778606 : 예, ViewModel에 속성이 있습니다. 실제로 ModelState에는 키가 있지만 값이 없습니다. 증서에서, 나는 사용자가 그것을 책임지지 않기 때문에, 나는 ModifiedDate를 View에서 Controller로 전달하지 않을 것이다. 하지만 지금은 그 일을해야하고 Date를 HiddenField 또는 이와 비슷한 것으로 전달해야한다고 생각합니다. 그렇게 생각하지 않아? – user2394196
나는 이것이 문제를 치유하는 가장 쉬운 방법이라고 생각한다. 서버에 다시 도착하면 수정 한 날짜를 덮어 씁니다. – user1778606