如何使用超链接按钮进行'HTTP-POST'



我有一个silverlight应用程序,用户可以在应用程序中输入sql查询,然后服务器将查询结果作为Excel文件返回。

用户点击下载链接,该链接链接到生成excel文件的服务器中的HttpHandler。经过一些研究[1],我发现使用HyperlinkButton控件是提供文件链接的最可靠的方式,没有浏览器弹出式安全设置的麻烦。

我需要将SQL查询作为HttpHandler的参数发送,它可能会很长。由于大小限制,我不能将其包含在url中作为查询字符串(HTTP GET)。

是否有办法做一个' http post '与HyperlinkButton?

[1] Browser.HtmlPage.Window.Navigate被阻塞了,但HyperlinkButton是't -为什么?

在这种情况下,我认为你可以尝试使用jquery发送get/post请求。

Post request API documentaton: http://api.jquery.com/jQuery.post/

Get Request API文档:http://api.jquery.com/jQuery.get/

<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
</script>
<script>
function f(){
    $.post("http://www.w3schools.com/jquery/demo_test_post.asp",
    {
      name:"Donald Duck",
      city:"Duckburg"
    },
    function(data,status){
      alert("Data: " + data + "nStatus: " + status);
    }
)};
</script>
</head>
<body>
<a href="javascript:f()">Send an HTTP POST request to a page and get the result back</a>
</body>
</html>

不使用链接为什么要让按钮看起来像链接呢?按钮被显示为链接的一个完美例子是Facebook。它在一个帖子中有几个按钮,但它们都显示为链接。这里是Css代码,它使按钮看起来像一个链接。您可以随时更改链接的外观和感觉(也许是按钮)。

按钮的css代码:

button {
    background:none!important;
    border:none; 
    padding:0!important;
    /* Do all your Styling to the Button here. It will look like a link instead. */
}

按钮HTML代码。

<button>Your Button Here.</button>

希望能解决你的问题。谢谢你。

最新更新