2012-01-04 3 views
2

자동 편집보기에서 날짜 시간을 업데이트하는 새로운 기록에 날짜 시간을 설정합니다. 나는 이것을 달성하기 위해 다음 코드를 사용했다 ...자동으로 저장할 때

@Html.HiddenFor(model => model.Posted, Model.Posted = DateTime.Now) 

포 블렘은 새로운 레코드를 만든다. 위의 코드는 작동하지 않지만 자동 datetime 항목을 구현하는 중입니까?

표시되는 오류이다

NullReferenceException이 사용자 코드 객체 다음 코드는 컨트롤러이다

의 인스턴스로 설정하지 (오브젝트 참조 의해 처리되지 않은이었다

// 
    // GET: /cars/Create 

    public ActionResult Create() 
    { 
     return View(); 
    } 

    // POST: /cars/Create 



    [HttpPost] 
    [ValidateInput(false)] 

    public ActionResult Create(cars newsitem) 
    { 
     try 
     { 
      using (var db = new carsNewsEntities()) 
      { 
       db.cars.Add(cars); 
       db.SaveChanges(); 
      } 
      return RedirectToAction("Index"); 
     } 
     catch 
     { 
      return View(); 
     } 
    } 
+0

? EF? SQL에 Linq? –

+0

는 모델과 함께 작동하여 액션 메소드를 표시해야합니까, 그 모델은 데이터 액세스 계층으로 어떻게 전달됩니다. – Yuck

+1

는이'model.Posted = DateTime.Now' 있어야하는데? – msarchet

답변

0

보기에 새 개체를 전달하십시오 :

,732 : 내가 컨트롤러에서 해당 필드를 설정합니다 있지만

// 
// GET: /News/Create 

public ActionResult Create() 
{ 
    return View(new NewsItem()); 
} 

+0

위의 해결 방법이 효과적이었습니다. –

1

새 개체를 초기화하는 방법을 아는 대신에 보기, 나는 그 날짜 시간을 설정하는 것이 좋습니다 1) 귀하의 서비스를 호출하는 방법을 알고 정적 공장을 만들거나 2) 모델 개체의 빈 생성자. Btw은

public MyModelObject() 
{ 
    Posted = DateTime.Now; 
} 

, 나는 내 생각이 옳다면 ... 당신은 여전히으로 작동하는 방법을 얻을 수 있습니다 귀하의 "게시"속성이 널하지 가능성이 있기 때문에 당신이 null 참조 예외를 받고 있다고 생각 ...이 널 (NULL) 만들기 (하지만 당신은 null 이외의 집행을 느슨하게)

0

10 위의 솔루션은 작동하지만 위의 해결책 다음 CreatedDate 및 ModifiedDate 같은 다른 열이있는 경우 작동하지 않는 경우에도. 레코드를 업데이트 한 후 createdDate를 null로 설정합니다. 편집보기에서 아래 줄을 시도해 보았습니다. 유사

@Html.HiddenFor(model => model.EntryDateTimeStamp, Model.EntryDateTimeStamp = Model.EntryDateTimeStamp) 
@Html.HiddenFor(model => model.ModifiedDateTime, Model.ModifiedDateTime = DateTime.Now) 

은에서 나는 비슷한 일을
@Html.HiddenFor(model => model.EntryDateTimeStamp, Model.EntryDateTimeStamp = DateTime.Now) 

했다보기를 만들고 위에서 언급 한 대답과 같은 컨트롤러에 새로운 객체를 전달합니다. 데이터 액세스를 위해 사용하고있는

return View(new NewsItem()); 
관련 문제