概念/述语
从这里开始
数据库
开发入门
程序扩展
使用介绍
其它

用纸壳CMS做二次开发的时候,经常会使用到异步请求。纸壳CMS里面实现异步请求非常简单,只需要创建好对应的controlleraction和路由就可以了。

例如我们创建了一个ArticleInfoControllerGetArticles用于返回所有文章信息:

namespace ZKEACMS.Article.Controllers
{
    public class ArticleInfoController : Controller
    {
        private readonly IArticleService _articleService;
        public ArticleInfoController(IArticleService articleService)
        {
            _articleService = articleService;
        }

        public IActionResult GetArticles()
        {
            return Json(_articleService.Get());
        }
    }
}

接下来我们需要创建一个路由,如果不创建路由,将会使用后端路由(admin/{controller}/{action}/{id?})来处理请求,这显然不是我们所期望的。

我们打开插件类,例如ArticlePlug.cs,并在RegistRoute()方法注册我们的路由:

public override IEnumerable<RouteDescriptor> RegistRoute()
{
    yield return new LocalizeRouteDescriptor
    {
        RouteName = "article-info",
        Template = "article/info/getarticles",
        Defaults = new { controller = "ArticleInfo", action = "GetArticles" },
        Priority = 12
    };
}

注意:定义路由时,注意将优先级设置到10以上(>10)。LocalizeRouteDescriptor表示该路由支持多语言,如不需要支持多语言,可直接使用RouteDescriptor

接下来就可以在模板里面使用了,Razor:

@using (Script.AtFoot())
{
    <script type="text/javascript">
        $.get("@Url.Action("GetArticles","ArticleInfo")", function (data) {

        });
    </script>
}

前端模板:

<script type="text/javascript">
    $.get("{% url '~/article/info/getarticles' %}", function (data) {

    });
</script>

微信公众号