2017-05-31 4 views
0

ich die folgende Basisklasse für alle Controllers-Access-Controller-Ebene variabel von Aktion-Methode Attribut

public abstract class BaseController:Controller 
{ 
    public string BaseUrl 
    { 
     get { return "something"; } 
    } 
} 

Ich habe auch die folgende Aktion Filter Attribut-

public class CheckQueryStringAttribute : ActionFilterAttribute 
{ 
    string baseUrl; 

    public CheckQueryStringAttribute(string BaseUrl) 
    { 
     baseUrl = BaseUrl; 
    } 
} 

Ich möchte BaseUrl verwenden von Basis-Controller in Attribut wie folgt-

public class LoginController : BaseController 
{ 
    [CheckQueryString(BaseUrl)] 
    public ActionResult LoginSuccess() 
    { 
     return View(); 
    } 
} 

Gibt es einen Weg zu TU es?

Antwort

0

Sie konnten keine Variablen- oder Objektreferenz im Attributkonstruktorparameter übergeben, da Attribute zur Kompilierungszeit aufgelöst werden, sodass Sie nur durch ihren Konstruktor konstant übergeben werden können.

Aber wenn Sie genau erklären, was Sie tun möchten, kann ich Ihr Problem auf andere Weise lösen.

+0

Ich muss eine Variable im Attribut übergeben. Das ist das Problem. –

+0

ist es unmöglich. Wie gesagt, Attribut wird zur Kompilierzeit aufgelöst. Sie haben Metadaten hinzugefügt. Daher ist es unmöglich, eine Variable im Attribut zu übergeben –