在我的控制器中尝试实现此功能时遇到了麻烦。从本质上讲,我有一个控制器,而不是它完成时将用户传递给URL,如下所示:
<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
但是,我试图实现每次调用此控制器时发送SMS的功能,并且使用类似的URL(没有用户名或密码组成): http://go.bulksms.com:1557/send?username=fred&message=hello 这需要通过HTTP post请求访问。我知道我可以在上面的“返回重定向”中返回此URL,但我希望两者都发生(重定向和发送短信的此链接上的帖子),理想情况下我希望用户现在重定向到页面,但是短信将在后台发送。我该如何实现呢?
答案 0 :(得分: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
答案 1 :(得分:0)
重定向始终是GET
请求
要发布到不同的网址,您需要使用HttpWebRequest
类从您的代码中调用它。