2012-02-29 1 views
1

지금까지 컨트롤러 동작에 항상 postget을 사용했습니다.Restful ASP.NET MVC 앱에서 모든 HTML 동사를 사용하는 가장 간단한 방법은 무엇입니까?

내 앱의 주요 동사를 모두 사용하여 나머지 표준을 준수하고 독점적으로 가져 오기 및 게시를 사용하지 않으려합니다.

내가 사용하고 싶은 추가 동사는

  • 된다
  • 패치

이 달성의 가장 간단한 방법은 무엇입니까 삭제 넣어? 나는 모든 필요한 동사 (patch 제외)를 [AcceptVerbs(...)]에 사용할 수 있음을 알고 있지만 어떻게 구현해야하는지 잘 모릅니다.

+0

, 또는 웹 사이트를 가질 수 있습니다 다음과 같이보기에 포스트 메소드를 오버라이드 (override) 할 수

http://iwantmymvc.com/rest-service-mvc3

RPM1984

+0

글쎄, 각 액션은 어떤 종류의 컨텐츠를 제공할지 결정할 것입니다. 기본적으로 그것은 콘텐츠 요청에 따라 웹 사이트 AND와 API로 사용됩니다. 즉 : if (request.Headers ("HTTP_X_REQUESTED_WITH") == "xmlhttprequest") {return JSON;} else {return View() ;}' –

+0

hmmm .... 하나의 웹 사이트와 API? 확실하지 않습니다. 나는 몇 가지 이유로 그들을 분리 할 것이다. 당신이 주요 웹 사이트를 아주 작은 변화 (UI, 자바 스크립트 등)로 업데이트하는 동안 API가 "라이브"상태를 유지하도록 허용합니다. JS, CSS, ViewModels 등 - API가이 API를 사용하거나 신경 쓰지 않으므로 이러한 구성 요소 중 하나를 변경하면 온라인 상태에 어떤 영향을 미칩니 까? 내가 생각하는 의견들. – RPM1984

답변

1

가장 쉬운 방법은 방금 출시 된 MVC4 베타를 사용하는 것입니다. 여기에는 자동으로 편안한 요청을하는 새 WebAPI가 포함됩니다. WebAPI 만 설치하고 MVC3에서 사용할 수도 있습니다. 라이브 라이센스도 포함됩니다.

그러나 베타가 아닌 경우에는 조금 더 작업해야합니다. 다음은 좋은 마무리입니다.

<% using (Html.BeginForm("MyAction","MyController",FormMethod.Post)) 
{ 

    %> 
    <%:Html.HttpMethodOverride(HttpVerbs.Put) %> 
    <% 
} %> 

그런 다음 컨트롤러에서, 당신은 [HttpPut]

이이 API를위한
1

, 그 주로 HTML (그리고 아약스 요청에 대한 이상한 JSON)을 제공합니까?
+0

생각할 수 있습니다. 컨트롤러의 [HttpPost] 및 [[HttpDelete]'에서 두 개의 동사를 사용할 수도 있습니다. –

관련 문제