aspnet: 判断文件是否存在_.NET Core MVC Action中判断某个视图是否存在

在开发Web网站过程中可能会遇到需要添加许多宣传页,这些宣传页往往不需要什么后端逻辑代码,这时候我们就不希望为每一个宣传页都添加一个Action,

而是希望只添加一个Action,然后结合路由动态的指向不同的视图。而动态的指向不同的视图这时候可能就需要用到判断某个视图是否存在,不存在执行某个逻辑。

下面我们来看下Demo:

首先来看下Demo的项目结构

8c8bd44e22327a4b2e8c753d5fcc10ac.png

接下来看下核心代码

2b384b11c485a3c756432359ea8bbcbf.gif
using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using Microsoft.AspNetCore.Mvc;using Microsoft.AspNetCore.Mvc.ViewEngines;namespace IsExistsViewDemo.Controllers{    ///     /// 静态宣传页    ///     public class DHtmlController : Controller    {        #region 字段和属性        ///         /// 混合视图引擎        ///         private readonly ICompositeViewEngine _compositeViewEngine;        #endregion 字段和属性        #region 构造函数        ///         /// 构造函数        ///         public DHtmlController(ICompositeViewEngine compositeViewEngine)        {            _compositeViewEngine = compositeViewEngine;        }        #endregion 构造函数        #region 宣传页        ///         /// 宣传页        ///         ///         /// 视图名称        ///         ///         ///         [Route("dhtml/{viewname}/")]        public IActionResult Index(string viewname)        {            var view = _compositeViewEngine.FindView(ControllerContext, viewname, false)?.View;            if (view == null) //判断指定的视图文件是否存在            {                // TODO                return View("NotFound");            }            return View(viewname);        }        #endregion 宣传页        #region 直通车宣传页        ///         /// 直通车宣传页        ///         ///         /// 视图名称        ///         ///         ///         [Route("dhtml/ztc/{viewname}.html")]        public IActionResult ZTC(string viewname)        {            var view = _compositeViewEngine.FindView(ControllerContext, $"ZTC/{viewname}", false)?.View;            if (view == null) //判断指定的视图文件是否存在            {                // TODO                return View("NotFound");            }            return View($"ZTC/{viewname}");        }        #endregion 直通车宣传页    }}
2b384b11c485a3c756432359ea8bbcbf.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值