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...
}

您可以设置要指向同一方法的所有单独路由。