2011-09-14 4 views
0

내 Profile.cshtml에 저장 및 취소라는 두 개의 버튼이 있습니다. 이제 내 방법은 다음과 같습니다.양식 저장 및 취소 버튼

[HttpPost] 
public ActionResult Profile() 
{ 
    //code.. 
} 

이렇게하면 레코드를 데이터베이스에 저장합니다. 그러나 문제는 취소가 여기에 게시되기 때문에 레코드가 데이터베이스에 저장됩니다. 어떻게해야합니까?

+0

어떻게 버튼 양식을 제출 취소? 저장 및 취소 버튼 코드를 게시 할 수 있습니까? – Ali

답변

1

나는 종종 볼에 전달되는 뷰 모델 클래스를 사용하고, 그 뷰 모델에서 내가 가진 :

[HttpPost] 
public ActionResult Save(MyViewModel inputViewModel) 
{ 
    if(inputViewModel.SaveButtonClicked()) {} 

    blah....... 

} 

내보기이

@using (Html.BeginForm()) 
{ 

    // Other stuff. 
    <input type="submit" name="submit" value="Save" /> 
    <input type="submit" name="submit" value="Cancel" /> 
} 
처럼 보이는 컨트롤러에서 다음

public string submit { get; set; } 

public bool SaveButtonClicked() 
{ 
    return this.submit.Equals("save"); 
} 

public bool CancelButtonClicked() 
{ 
    return this.submit.Equals("cancel"); 
} 

나를 위해 정말 잘 작동합니다. 제출 단추에 동일한 이름을 사용하게하면 두 이름 중 하나를 누를 때 해당 이름이 submit viewmodel 속성에 전달됩니다. 이름이 중복되는 것이 나쁜 생각인지는 모르겠지만 내 요구에 대해서는 괜찮습니다.

+0

정확히 내가 무엇을 찾고 있었습니까. 고마워요 제이슨 – Jaggu

+0

probs, 다행스럽게 도울 수 :) –

0

취소 버튼처럼 type 속성이 submit으로 설정되어있는 것 같습니다. 그러면 저장 버튼을 누르는 것처럼 양식이 제출됩니다.

스스로에게 묻어야 할 질문은 '취소'버튼에 무엇을 하시겠습니까? 폼을 완료하지 않은 경우 다른 페이지로 이동하는 버튼을 만드는 것이 더 좋을 수 있습니다. 그렇지 않으면 ActionResult를 가리 키기 위해 리디렉션을 수행해야합니다.

언제든지 문의하십시오.

0

정상적으로 양식을 제출하려면 저장 버튼이 있고 취소 버튼은 색인 또는 기타 항목을 가리키는 조치 링크 일뿐입니다.

+0

나는 actionlink를 원하지 않는다. 내 저장은 버튼이므로 취소 버튼도 있습니다. – Jaggu

+0

CSS가있는 "링크"모양을 가질 수 있습니다 - 왜 머리 속에 총을 맞고 컨트롤러가 속한 곳에서보기에서 문제를 해결할 수있을 때보기와 함께 잘 작동하도록 변경합니까? – Carsten

2

보기에는 각 양식의 동작이 컨트롤러의 관련 작업 방법에 게시되는 2 개의 양식 (각 단추마다 하나씩)이있을 수 있습니다. 예를 들어,보기 : 컨트롤러에서 다음

@using (Html.BeginForm("Save", "Profile")) 
{ 
    <input type="submit" value="Save"/> 
} 

@using (Html.BeginForm("Cancel", "Profile")) 
{ 
    <input type="submit" value="Cancel"/> 
} 

:

[HttpPost] 
public ActionResult Save() 
{ 
    ... 
} 

[HttpPost] 
public ActionResult Cancel() 
{ 
    ... 
} 
+0

좋은 해결책 :) – Jaggu

+0

이것은 멋지게 작동합니다. – itsmatt

관련 문제