문제

뷰에서 ViewUserControl(.ascx 파일)을 렌더링하고 있습니다.

<% Html.RenderPartial("Comments", Model.Comments); %>

이 ViewUserControl은 항목에 대한 관련 설명을 표시합니다.내 애플리케이션 사용자가 기여할 수 있도록 이 컨트롤을 통해 양식도 렌더링하고 싶습니다.

ViewUserControl에 양식을 추가하고 포스트백을 어떻게 처리합니까?

도움이 되었습니까?

해결책

어떤 페이지와 마찬가지로 양식을 추가하십시오. MVC에서는 양식이 포스트백이 아닙니다. 단순히 HTTP 게시물을 통해 URL에 컨텐츠 (입력 제어)를 제출합니다.

컨트롤러 (따라서 URL)에 동작을 작성하여 양식이 게시하고 필요한 활동을 수행하는 것만으로도 동작을 만듭니다.

다른 팁

표준 asp.net과 같이 포스트백이 없으며 일부 URL(컨트롤러/액션)에 데이터를 게시하는 양식 태그만 있을 수 있습니다.
부분 사용자 컨트롤 내부에 다음을 작성하세요.

<form action="controller/actionname" method="post">
<input type="text" name="inputText" />
<input type="submit" value="Post data to server" />
</form>

MVC에서는 입력 type="submit"만 양식 제출을 트리거합니다.표준 ASP.NET 웹 양식에는 많은 링크 버튼, 버튼 등이 있을 수 있습니다.하지만 내부적으로는 모두 javascript 이벤트를 통해 입력 유형="제출"에 대한 간단한 클릭을 트리거합니다.하나의 양식은 하나의 URL(컨트롤러/작업)에만 데이터를 게시할 수 있지만 이는 javascript로 변경할 수 있습니다('이전' asp.net 웹 양식의 html 소스에서 볼 수 있듯이).

그런 다음 컨트롤러에서 게시 데이터를 처리할 수 있습니다.

[AcceptVerb(HttpVerb.Post)] // optionally 
public ActionResult ActionName(string inputText) ...

다른 사람들이 이미 대답했던 것처럼, 당신은 단순히 양식을 렌더링하고 ActionResult와 함께 제출합니다.

예를 들어, 귀하의 양식 (귀하의 사이트 어디에서나 렌더링 될 수 있음)가 제출중인 경우 http://www.yoururl.com/home/save, 당신은 홈 컨트롤러에 저장이라는 ActionResult 메소드를 만들어 제출 (post/get 메소드)을 처리합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top