문제

MVC에서 양식을 만들 때 어떤 방법을 선호하시나요?

<% Html.Form() { %>
<% } %>

또는

<form action="<%= Url.Action("ManageImage", "UserAccount") %>" method="post">
</form>

PR5부터 Html.Form()은 이제 요청에서 제공한 URL만 사용한다는 것을 알고 있습니다.그러나 그것에 관한 어떤 점은 나에게 잘 맞지 않습니다. 특히 포함된 쿼리 문자열의 모든 수하물을 가져오게 될 것이기 때문입니다.

당신의 의견은 무엇입니까?

도움이 되었습니까?

해결책

두 번째 방법은 확실합니다.첫 번째 방법은 프로그래머 중심이며 MVC의 V 부분에 관한 것이 아닙니다.두 번째 방법은 보다 디자이너 중심적이며 필요한 경우에만 모델에 바인딩하고 HTML을 최대한 자연스럽게 유지합니다.

다른 팁

전반적으로 나는 나만의 HTML 요소를 롤링하는 것을 선호하기 때문에 다소 구식이라고 생각합니다.

나는 또한 다음과 같은 뷰 엔진을 선호합니다. NHaml, 이는 HTML 작성을 거의 훨씬 더 간단하게 만듭니다.

저는 두 분 모두의 의견에 동의해야 합니다. 저는 MVC에 통합되는 것처럼 보이는 단순한 WebForms 스타일을 별로 좋아하지 않습니다.이 항목은 제3자 라이브러리이거나 최소한 필요하거나 원할 경우 포함될 수 있는 확장 라이브러리여야 하는 것처럼 보입니다.

나는 전적으로 디자이너들이 사용하는 구식 HTML에 동의합니다.이런 이유로 나는 많은 코드 중심 구문을 포함하고 싶지 않습니다.나는 웹 양식 뷰 엔진을 다른 뷰 엔진으로 교체했기 때문에 제3자 라이브러리처럼 취급합니다.웹 양식 보기 모델이 작동하는 방식이나 진행 방향이 마음에 들지 않으면 언제든지 다음을 수행할 수 있습니다. 다른 길로 가다.이것이 제가 ASP.NET MVC를 좋아하는 주된 이유 중 하나입니다.

나는 DRY의 Andrew Peters의 의견에 동의합니다.또한 컨트롤러, 작업 및 매개변수를 .Form() 도우미에 지정할 수 있으며 라우팅 규칙에 맞는 경우 쿼리 문자열 매개변수가 사용되지 않는다는 점도 지적해야 합니다.

나는 또한 Will이 MVC의 V에 대해 말한 것을 이해합니다.제 생각에는 뷰에 코드를 넣는 것이 문제가 아니라고 생각합니다. 그것이 전망을 위한 것이라면.조심하지 않으면 컨트롤러와 뷰 사이의 경계를 넘기가 정말 쉽습니다.개인적으로 나는 눈에서 피가 흐르거나 누군가를 살해하고 싶은 충동이 생기지 않고는 C#을 템플릿 엔진으로 사용하는 것을 참을 수 없습니다.이를 통해 내 논리를 분리하고 C#의 컨트롤러 논리, Brail의 보기 논리를 유지하는 데 도움이 됩니다.

헬퍼를 사용하는 이유는 공통 패턴을 일관되고 DRY 방식으로 캡슐화할 수 있기 때문입니다.일반 코드에서와 마찬가지로 중복을 제거하기 위해 뷰를 리팩터링하는 방법으로 생각하십시오.

예를 들어, 나는 블로그에 올렸던 모델을 기반으로 URL을 구축할 수 있는 일부 RESTful NHaml 도우미에 대해 설명합니다.

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