2011-03-07 5 views
0

제품을 DB에 저장하는 간단한 작성 작업이 있습니다. 제품을 저장 한 후 돌아온 View (신제품()); 양식 필드를 재설정하지만 양식은 이전 데이터 (양식을 제출하기 전에 데이터)를 표시합니다. 또한 나는 반환보기 (새 제품 (이름 = "테스트")); 그러나 그것은 또한 작동하지 않습니다. 무엇이 문제입니까? 제품이 DB에 올바르게 저장됩니다 (ModelState.IsValid가 true라는 의미입니다). RedirectToAction을 사용하고 싶지 않습니다.반송 작업이 올바르게 작동하지 않습니다.

[HttpPost] 
    public ActionResult New(Product product) 
    { 
     if (ModelState.IsValid) 
     { 
      product.SubmitDate = DateTime.UtcNow; 
      productRepository.Add(product); 
      productRepository.Save(); 

      //ViewBag.Message = "product is saved"; 
      return View(new Product()); 
     } 

     return View(product); 
    } 

답변

2

나는 권장 연습 RedirectToAction()을 사용하는 것입니다 생각하지만 당신은 그것을 당신의 방법을 시도하려는 경우 모델 상태에 이미있는 속성을 수정하려는 경우, 당신은

ModelState.Clear(); 
return View(new Product()); 
+0

+1 - RedirectToAction()은 분명히 여기 있습니다. –

0

을 시도 할 수

ModelState.Remove("SubmitDate"); 
product.SubmitDate = DateTime.UtcNow; 
return View(product); 

그리고 요하는 경우 :이 값에 바인딩 된 HTML 헬퍼는 항상 모델 상태 값이 아니라 수정 한 일을 사용하거나 제거해야합니다 u 속성을 모두 지우려면 전체 모델 상태 컬렉션을 리디렉션하거나 지우는 것이 더 낫습니다. ModelState.Clear();

관련 문제