ASP MVC - 如何直接路由到函数而不是通过 get/post
ASP MVC - How to route directly to function instead of through get/post
我正在使用 ASP.NET MVC 在 VS 2013 中开发一个项目。在我的一个 cshtml 文件中,我有以下代码 return 一个值(这里是整数):
$.ajax({
url: '/myproject/api/Test',
type: 'GET',
success: function (data) {
UseResults(data);
},
error: function (msg) {
alert(msg);
}
});
此路由到的文件 TestController.cs
具有以下代码:
namespace MyProject.Controllers
{
public class TestController : ApiController
{
public int Get()
{
return GetThisValue();
}
public int GetThisValue()
{
//Do work to find and return value...
}
}
}
此代码目前可以正常工作。它通过 ajax 调用路由到 Get() 函数来实现,return 是 GetThisValue() 函数的正确值。然而,当它所做的只是调用另一个函数时,需要单独的 Get() 函数是乏味的。此外,在这个程序中,将有许多不同的函数使用 Ajax 中的 "GET" 方法,虽然可以通过 Get() 将它们全部路由,但对于我们能够直接在 ajax 调用中调用 GetThisValue(),而不是通过 Get()。我的问题是,有没有什么方法可以使用 ajax 直接路由到使用 [HttpGet] 的函数,而不需要它首先路由到 Get() 然后再从那里路由到另一个函数? (很抱歉,如果我没有把它说得很好,如果需要澄清任何事情请询问)
属性路由很简单...
[Route("/myproject/api/test")]
[Route("/some/other/route")]
[Route("/yet/another/route")]
public int GetThisValue()
{
//Do work to find and return value...
}
您可以设置要指向同一方法的所有单独路由。
我正在使用 ASP.NET MVC 在 VS 2013 中开发一个项目。在我的一个 cshtml 文件中,我有以下代码 return 一个值(这里是整数):
$.ajax({
url: '/myproject/api/Test',
type: 'GET',
success: function (data) {
UseResults(data);
},
error: function (msg) {
alert(msg);
}
});
此路由到的文件 TestController.cs
具有以下代码:
namespace MyProject.Controllers
{
public class TestController : ApiController
{
public int Get()
{
return GetThisValue();
}
public int GetThisValue()
{
//Do work to find and return value...
}
}
}
此代码目前可以正常工作。它通过 ajax 调用路由到 Get() 函数来实现,return 是 GetThisValue() 函数的正确值。然而,当它所做的只是调用另一个函数时,需要单独的 Get() 函数是乏味的。此外,在这个程序中,将有许多不同的函数使用 Ajax 中的 "GET" 方法,虽然可以通过 Get() 将它们全部路由,但对于我们能够直接在 ajax 调用中调用 GetThisValue(),而不是通过 Get()。我的问题是,有没有什么方法可以使用 ajax 直接路由到使用 [HttpGet] 的函数,而不需要它首先路由到 Get() 然后再从那里路由到另一个函数? (很抱歉,如果我没有把它说得很好,如果需要澄清任何事情请询问)
属性路由很简单...
[Route("/myproject/api/test")]
[Route("/some/other/route")]
[Route("/yet/another/route")]
public int GetThisValue()
{
//Do work to find and return value...
}
您可以设置要指向同一方法的所有单独路由。