我有一个简单的Web API(位于webforms网站内),可以生成一个简单的“每日提示”。代码如下:
AppCode \ TipOfTheDayController.vb
Imports System.Net
Imports System.Web.Http
Public Class TipOfTheDayController
Inherits ApiController
Private Function GenerateTip() As TipOfTheDay
Dim tipCol As New List(Of Tip)
tipCol.Add(New Tip("Tip Text 01"))
tipCol.Add(New Tip("Tip Text 02"))
tipCol.Add(New Tip("Tip Text 03"))
Dim rnd As New Random
Dim i As Int16 = rnd.Next(0, tipCol.Count - 1)
Dim td As New TipOfTheDay
td.TipString = tipCol(i).TipString
td.TipNumber = i
Return td
End Function
Public Function GetTip() As TipOfTheDay
Return GenerateTip()
End Function
End Class
Public Class Tip
Public Property TipString As String
Public Sub New(ts As String)
Me.TipString = ts
End Sub
End Class
Public Class TipOfTheDay
Public Property TipString As String
Public Property TipNumber As String
End Class
我正在尝试连接它,以便可以使用
调用它假设上面的网址没问题,我无法在Global.asax中找到这一点。我在网上看到大量的例子,但都有一个我不需要的可选“ID”值。任何人都可以告诉我,我需要做些什么来从API中检索我的随机“提示”?
<%@ Application Language="VB" %>
<%@ Import Namespace="System.Web.Routing" %>
<%@ Import Namespace="System.Web.Optimization" %>
<%@ Import Namespace="System.Web.Http" %>
<script runat="server">
Sub RegisterRoutes(routes As RouteCollection)
routes.MapHttpRoute("TipOfTheDay", "api/tips")
End Sub
</script>
答案 0 :(得分:1)
如果未在路径中指定操作或输入URL,则路由正在控制器上查找“索引操作”。将GetTip函数重命名为Index。
如果这是不可接受的,您可以添加类似于以下的路线来代替您当前的路线。
routes.MapHttpRoute("TipOfTheDay", "api/tips", new { Controller = "TipOfTheDay" Action = "GetTip" });
但是,我不建议使用此路由,因为每次未指定时,它都会尝试使用GetTip作为默认操作。
以下是在Web表单应用程序中进行路由的良好资源: http://msdn.microsoft.com/en-us/library/dd329551.ASPX