2012-06-20 3 views
0

저장 버튼 클릭 이벤트가있는 컨트롤러가 하나 있습니다. 추가 및 편집 목적으로 동일한 컨트롤러 및보기를 사용하고 있습니다. 내 코드는 버튼을 ActionName 작동하지 않을 수 있습니다 ("편집") 여기 ("만들기") ActionName을 사용하여 메신저로 버튼에 대해 복수 액션 이름 추가

[HttpPost] 
      [Button(ButtonName = "Save")] 
      [ActionName("Create")] 
      [ValidateAntiForgeryToken(Salt = "PostData")] 
      public ActionResult Save(Ntegra m_Ntegra,FormCollection form) 
      {} 

아래에 따라. 아무도 내 requirnment을 얻을 수있는 방법을 말해 줄 수 없어 !! 도움 주셔서 감사드립니다 ...... :)

답변

0

하나의보기, 즉 Edit or Create을 사용할 수 있지만 두 가지 다른 Controllor 작업 (작성, 편집)을 작성해야합니다.

당신에게 규칙이 사용 되는가에 대한 아이디어를 줄 것이다 MVC Music store CodePlex project을 참조하십시오 그리고 당신은 저장 명명 된 실행 방법을 가지고 모델을 전달할 수있는 표준 MVC 코드를

0

를 작성. IN 동작 방식에서는 모델에 ID가 있는지 확인할 수 있습니다. 미리 정의 된 ID가 있으면 레코드를 업데이트 할 수 있습니다. 그렇지 않으면 새 레코드를 만들 수 있습니다. IN FormCollection의 경우 양식을 렌더링하는 동안 숨겨진 필드를 사용하여 ID 필드를 저장합니다.

정말 createedit 두 컨트롤러 액션을 요구 아니에요
public ActionResult Save(FormCollection form) 
      {} 
+0

나는 내보기 – NewToBirtReporting

+0

에 좀 더 버튼이 나는 희망만을 게시물을 할 것입니다 버튼 (데이터를 게시 할 예정입니다 곳과 행동도 폼 태그에서 구성)에 저장합니다. 다른 버튼은 단순히 링크를 통해 리디렉션을 수행합니다. 취소 버튼이있는 경우 앵커 태그로 변경하고 URL은 다른 페이지로 이동해야합니다. – Mahesh

+0

감사. 솔루션을 찾았습니다 – NewToBirtReporting

0

, 당신은 ActionName 속성을 장식하지 않고 하나의 조치를 할 수 있습니다.

단일 컨트롤러 동작에서 엔티티의 id을 저장해야하는지 확인해야합니다. 값이 있으면 편집하고 그렇지 않으면 만들 것입니다.

[HttpPost] 
public ActionResult Save(Ntegra m_Ntegra) 
{ 
    if(m_Ntegra.Id == 0) 
    { 
    // create 
    } 
    else 
    { 
    // edit 
    } 
} 
+0

하지만 저장, 취소, 내보기 eberytime이 세 버튼을 Ping은 다시 게시가 혼란스러워 ABT 작업을 얻을 것이다 – NewToBirtReporting