我试图将旧网站项目转换为网络应用程序。我设法设置了项目并复制了文件并设置了参考资料以及所有这些。我遇到的问题是路由现在完全改变了,而不是:
../quotes/Transmittals.aspx
我明白了:
../quotes/Transmittals
这很棒,我喜欢它。但是在旧的网站项目中,所有的ajax调用都设置了这些类型的路由:
$.ajax({
type: "POST",
url: "/quotes/Transmittals.aspx/GetContractTypes",
contentType: "application/json; charset=utf-8",
dataType: 'json',
success: function (data) {
...
},
error: function (xhr, ajaxOptions, thrownError) {
...
}
});
在.aspx页面后面的代码中:
<System.Web.Services.WebMethod>
Public Shared Function GetContractTypes() As String
Using _Repo As New Repository
Return ServiceCallResult.SendJSONResult(_Repo.GetContractTypesByLogin(SessionManager.GetCurrent.LoginID))
End Using
End Function
现在路径:/quotes/Transmittals.aspx/GetContractTypes
是一个很大的404.如果我从路径中删除.aspx,就会找到它,但WebMethod
永远不会被命中。
我所拥有的路由配置是您在创建新的Web应用程序时生成的标准配置:
Public Module RouteConfig
Sub RegisterRoutes(ByVal routes As RouteCollection)
Dim settings As FriendlyUrlSettings = New FriendlyUrlSettings()
settings.AutoRedirectMode = RedirectMode.Permanent
routes.EnableFriendlyUrls(settings)
routes.IgnoreRoute("{resource}.axd/{*pathInfo}")
routes.MapRoute(
name:="Default",
url:="{controller}/{action}/{id}",
defaults:=New With {.action = "Index", .id = UrlParameter.Optional}
)
End Sub
End Module
我需要在路线配置中添加一些东西,还是需要更改我的ajax路径或什么?