2012-08-13 5 views
0

컨트롤러에서이 문제를 실제로 구현하는 데 문제가 있습니다. 그것이 의미 기본적으로 나는이 완료 아래와 같이 URL로 사용자를 통과 할 때보다 컨트롤러가 : 내가 SMS이 컨트롤러가 호출 될 때마다 시간을 보낼 수있는 기능을 구현하기 위해 노력하고 이것을 가지고 그러나POST 요청을 한 페이지로 보내지 만 다른 페이지로 리디렉션

<HttpPost()> 
    Function Create(job As Job) As ActionResult 
     If ModelState.IsValid Then 
      db.Jobs.Add(job) 
      db.SaveChanges() 
      Dim url As String = "/RequestedService/AddService/" + job.JobId.ToString() 
      Return Redirect(url) 
     End If 

     Return View(job) 
    End Function 

URL (사용자 이름 또는 비밀번호없이 작성) : http://go.bulksms.com:1557/send?username=fred&message=hello HTTP 게시물 요청을 통해 액세스해야합니다. 위의 'Return Redirect'에서이 URL을 반환 할 수 있음을 이해하지만 두 가지 모두 (리디렉션과 SMS를 보내는이 링크의 게시물)를 원하고 이상적으로 사용자가 페이지로 리디렉션되기를 원하지만 SMS는 백그라운드에서 보내집니다. 어떻게 구현할 수 있습니까?

+0

위의 링크에서 설명의 가장 당신은 그것에서 호출 아약스를 만들고있다 할 수있다 귀하의 클라이언트와 귀하의 행동에'JavascriptResult'을 반환하고 성공 방법에서 당신이 전달해야 할 작업 및 매개 변수의 URL을 가진 또 다른 아약스 유형의 게시물을 수행 – Jorge

답변

1

시도해보십시오. 새 코드가 두 개의 주석 행 사이에 추가됩니다. 당신은 또한이 POST 인 경우에 당신이 어떤 형태의 데이터를 전달해야 할 수도 있습니다, 자세한 내용은이 url 참조 할 수 있습니다, 모든 :

<HttpPost()> 
    Function Create(job As Job) As ActionResult 
     If ModelState.IsValid Then 
      db.Jobs.Add(job) 
      db.SaveChanges() 
      'Sending SMS here: (start) 
      Dim request as WebRequest = WebRequest.Create("http://go.bulksms.com:1557/send?username=fred&message=hello") 
      request.Method = "POST" 
      Dim response As WebResponse = request.GetResponse() 

      'end 
      Dim url As String = "/RequestedService/AddService/" + job.JobId.ToString() 
      Return Redirect(url) 
     End If 

     Return View(job) 
    End Function 
+0

환상적입니다. 완벽하게 작동합니다! – NickP

0

리디렉션은 항상 다른 URL에 게시에 대한 GET 요청

입니다, 당신은 HttpWebRequest 클래스를 사용하여 코드에서 호출 할 필요가있다.

+0

GET에 대한 머리 감사합니다. HttpWebRequest를 사용하여 정확히 어떻게 호출 할 수 있습니까? HttpWebRequest를 찾으려고 인텔리 센스를 사용해 보았지만 행운을 찾지 못했지만 (ASP에 상당히 초보자 임) – NickP

관련 문제