Skip to content

自定义控制器访问路径

Henry edited this page Sep 10, 2019 · 1 revision

组件对控制器方法访问路径是Controller.BaseUrl+方法名;当BaseUrl不配置的情况下默认值是/

    [Controller]
    public class Home
    {
        [Post]
        public bool Login(string name, string value)
        {
            return name == "admin" && value == "123456";
        }
    }

由于没有设置BaseUrl,以上访问的路径是/LoginBaseUrl主要是描述方法对应的根路径

    [Controller(BaseUrl ="user")]
    public class Home
    {
        [Post]
        public bool Login(string name, string value)
        {
            return name == "admin" && value == "123456";
        }
    }

当然定义BaseUrl值为user后对应的访问路径是/user/login

自定义方法路由

很多时候都需要对方法制定不同的访问路径,组件支持在指定访问类型的同时制定不同的Route属性。

    [Controller(BaseUrl ="user")]
    public class Home
    {
        [Get(Route ="{user_id}")]
        public bool Query(string user_id)
        {
            return user_id == "admin";
        }
    }

以上访问路径是/user/query/{user_id},最后{user_id}相应的内容会注入到对应的user_id参数。

    [Controller(BaseUrl ="user")]
    public class Home
    {
        [Get(Route ="aaa/{user_id}")]
        public bool Query(string user_id)
        {
            return user_id == "admin";
        }
    }

以上访问路径是/user/aaa/{user_id},最后{user_id}相应的内容会注入到对应的user_id参数。

    [Controller(BaseUrl ="user")]
    public class Home
    {
        [Get(Route ="/aaa/{user_id}")]
        public bool Query(string user_id)
        {
            return user_id == "admin";
        }
    }

以上访问路径是/aaa/{user_id},最后{user_id}相应的内容会注入到对应的user_id参数。

路径多参数支持

可以通过Url来描述多个参数,但参数间的分隔符不支持/,定义如下:

    [Controller(BaseUrl ="user")]
    public class Home
    {
        [Get(Route ="/aaa/{user_id}-{pwd}")]
        public bool Query(string user_id,string pwd)
        {
            return user_id == "admin";
        }
    }