2013-03-18 2 views
1

저는 ASP에 다소 익숙합니다. 나는 아약스 전화를하고 싶지만 우리가 보내는 URL을 알아낼 수는 없다. 애플리케이션의 실제 URL은 무엇입니까? 물론 그것은 http : // localhost : someport/(링크가 SO 질문을 위반하기 때문에 추가됨)로 표시됩니다. "[asp", "aspx", "htm", "html", "asm", "asmx"] [ "index", "default"] 입력하면 오류가 발생합니다.Asp.Net에서 jQuery ajax 호출 사용

관련 자바 스크립트 부분은 다음과 같습니다

$.ajax({ 
    "url": "Default.aspx/ProcessReq", 

그리고처럼 내 컨트롤러 관련 C# 코드 보인다 : 내가 추가 한

[WebMethod] 
public object ProcessReq(string s) { 

하여 설정 파일에 다음

<configuration> 
    <system.web> 
     <webServices> 
     <protocols> 
      <add name="HttpGet"/> 
      <add name="HttpPost"/> 
     </protocols> 
     </webServices> 
    </system.web> 
</configuration> 

나는 완전히 잘못된 것을하고 있다고 확신한다. 나는 그 ASP를 다시 한번 강조 할 것이다. 나에게 상당히 새로운 것이다. 어떤 아이디어?

+0

폴, MVC 링크는 경로에 따라 다릅니다. 하지만 기본 경로를 사용한다고 가정하면 URL은 **/Controller/Action/**가됩니다. 웹 메서드는 ActionResult 메서드가있는 Controller 클래스로 대체됩니다. –

+0

참조 : http://stackoverflow.com/q/7770679/235710 –

+0

Default.aspx/ProcessReq는 일반적으로 PageMethods를 사용하는 경우에만 작동합니다. 여기서 코드는 코드 숨김 파일 - default.aspx에 직접 있습니다. .cs - 그리고 일반적으로 웹 메쏘드로 확인됩니다 ... @DaveA는 정확합니다. – kpcrash

답변

1

마음에 들지 않는 웹 폼으로 MVC에 오신 것처럼 보입니다. 그것은 흔한 일입니다.

불행히도 MVC는 WebForms와 매우 다릅니다. 뷰 (aspx 또는 면도칼)를 직접 호출하지 않을 것입니다. 당신은 Action Method :/home/index ...라고 부르며 default.aspx는 생략 할 수 있습니다. 시도 해봐.

ActionResult는

public ActionResult ProcessReq() 
{ 
    Json(new { page= "<HTML></HTML>", control= "<input type='text' id='control'>" }); 
} 

작업 결과 많은 중 (조회수 ', PartialView의 및 JSON을 반환 할 수 있습니다 JSON 유형이 될 수있는 컨트롤러 작업

public ActionResult ProcessReq() 
{ 
    return View(model) 
} 

을하거나 ProcessReq에 의해 반환 된 응답 유형의 기본 클래스입니다 다른 가능성들). 이 경우 설계의 구현 요구 사항에 따라 원하는 응답 유형을 결정해야합니다.