2012-08-13 172 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

相关问题