如何将字符串传递给基础层次结构标题类

时间:2018-05-24 13:07:14

标签: c# asp.net asp.net-mvc visual-studio asp.net-mvc-4

我试图做一个继承自“Controller”类的自定义控制器,并添加其他标题和方法,将其用作我项目中所有控制器的Controller。

这是我的代码

namespace Filters
{
    [Localization("en")]
    public abstract class CustomController : Controller
    {
        private Entities db = new Entities();
        private Log log;

        protected Log initLog(string aController)
        {
            this.log = new Log(aController, SG.getUser(Session), VG.config_string_connect_log);
            return this.log;
        }

        protected override void OnException(ExceptionContext filterContext)
        {
            Response.StatusCode = 500;
            TempData["MensajeExcepcion"] = filterContext.Exception.Message;
            filterContext.Result = new ViewResult
            {
                ViewName = "Error500",
                TempData = TempData
            };
        }
    }
}

我不知道该怎么办,当我从CustomController继承时,如何指定,例如在 [Localization(“es”)] 中使用它的语言。在这种情况下是“en”,但是,我可以在我继承的那一刻指定另一个字符串吗?

我在考虑使用泛型类型,但是......标题在...之前:(

公共类MyController:CustomController<¿Something?>(){ }

谢谢:)

2 个答案:

答案 0 :(得分:0)

尝试使用将在子控制器中覆盖的属性创建基本控制器类。见下文:

public abstract class BaseController : Controller
{
    public abstract string Localization { get; }
}

public class MyController1 : BaseController
{
    public override string Localization => "en";
}

这种方法对你有用吗?

答案 1 :(得分:0)

但那只是一个BaseController字符串属性,如何在标题的Localization定义中使用它?

*名称空间过滤器

{

[本地化(“en”)] < ---- HERE
公共抽象类BaseController:Controller

{