您好,登錄后才能下訂單哦!
ASP.NET中怎么調用Web Services方法,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
首先,我們寫一個Web Serivces方法:
[WebMethod] [WebOperation(true, ResponseFormatMode.Xml)] public XmlDocument Vote(string name, int id) { XmlDocument responseDoc = new XmlDocument(); responseDoc.LoadXml( "<?xml-stylesheet type=\"text/xsl\" href=\"Vote.xsl\"?>" + "<response><user></user><id></id></response>"); responseDoc.SelectSingleNode("//user").InnerText = name; responseDoc.SelectSingleNode("//id").InnerText = id.ToString(); return responseDoc; }
在Atlas中,HTTP POST為Web Services的默認支持方法,也是必然的支持方法。而如果需要使該Web Service方法支持HTTP GET的話,就必須如上面代碼一樣,使用Microsoft.Web.Services.WebOperationAttribute進行標注。 WebOperationAttribute的***個參數就是getVerbEnabled,true則表示支持HTTP GET方法。第二個參數Microsoft.Web.Services.ResponseFormatMode.Xml則表示結果對象的輸出方式為 XML,而不是默認的JSON。
在這里,我們使用XML的原因是因為JSON在這里沒有任何意義。返回JSON后是為了在獲得這些內容之后通過Javascript函數eval執行,從而獲得JSON表示的對象。而在這里,我們的目的是將結果顯示給用戶看,所以使用XML形式返回,再加上XSL的支持,就能以HTML的形式顯示給用戶了。
然后就是簡單的XSL:
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/response"> <html> <head> <title>Thanks for your participation.</title> </head> <body style="font-family:Verdana; font-size:13px;"> <h5>Thanks for your participation.</h5> <div> <xsl:text>Dear </xsl:text> <xsl:value-of select="user"/> <xsl:text>, you've voted for item </xsl:text> <xsl:value-of select="id"/> <xsl:text>.</xsl:text> </div> </body> </html> </xsl:template> </xsl:stylesheet>
接下來就是我們的HTML文件。我們的目的非常簡單,就是得到用戶輸入的信息,拼接成URL之后在新窗口中打開。因此我們在這里根本無需使用Atlas。代碼如下:
<div>Name:<input type="text" id="txtName" /></div> <div>Item: <select id="comboItem"> <option value="1">Item 1</option> <option value="2">Item 2</option> <option value="3">Item 3</option> <option value="4">Item 4</option> <option value="5">Item 5</option> </select> </div> <input type="button" value="Vote" onclick="vote()" />
點擊“Vote”按鈕后,就會調用Javascript函數Vote()。代碼如下:
<script language="javascript"> function vote() { var url = "HttpGetWebService.asmx?mn=Vote"; url += ("&name=" + encodeURI(document.getElementById("txtName").value)); url += ("&id=" + document.getElementById("comboItem").value); window.open(url); } </script>
看完上述內容,你們掌握ASP.NET中怎么調用Web Services方法的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。