2012-08-13 175 views
0

在我的控制器中嘗試實現此功能時遇到問題。從本質上講,因爲它代表我有一個控制器,它完成了用戶傳遞給下面一個URL時比:向一個頁面發送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 post請求來訪問。我知道我可以在上面的'返回重定向'中返回這個URL,但我希望這兩者都發生(重定向和發送短信的鏈接上的帖子),理想情況下我希望用戶重定向到現在的頁面,但是短信將在後臺發送。我將如何實現這一點?

+0

最,你可以做,它使來自被稱爲AJAX你的客戶端並在你的行爲中返回一個'JavascriptResult',然後在success方法中執行另一個ajax類型的帖子,該動作的url以及你需要傳遞的參數 – Jorge 2012-08-13 19:07:05

回答

1

試試這個。在兩條評論欄之間添加新代碼。您也可以參考這個url的詳細信息,如果它是一個POST,你可能要通過某種形式的數據,它在連接所有上面描述:

<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 2012-08-13 19:46:32

0

重定向始終是一個GET要求

張貼到不同的URL,你需要使用HttpWebRequest類從代碼中調用它。

+0

啊,感謝GET的負責人。我到底該如何使用HttpWebRequest調用它,我不太確定這將如何發生在我的代碼中,因爲我嘗試過使用intellisense來查找HttpWebRequest,但沒有運氣(對不起,我對ASP來說是相當新手) – NickP 2012-08-13 19:07:46

相關問題