将POST请求发送到一个页面,但重定向到另一个页面

时间:2012-08-13 18:56:09

标签: vb.net asp.net-mvc-3 sms-gateway

在我的控制器中尝试实现此功能时遇到了麻烦。从本质上讲,我有一个控制器,而不是它完成时将用户传递给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,但我希望两者都发生(重定向和发送短信的此链接上的帖子),理想情况下我希望用户现在重定向到页面,但是短信将在后台发送。我该如何实现呢?

2 个答案:

答案 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类从您的代码中调用它。