Передать нестатическое значение в actionfilter - PullRequest
2 голосов
/ 07 января 2011

Есть ли способ передать нестатическое значение параметру actionfilter, как показано ниже?

public class ProcuctController : Controller
{
    private int userID = 1;

    [TestFilter(x=userID)]
    public ActionResult Index()
    {
    }
}

Ответы [ 3 ]

1 голос
/ 07 января 2011

В зависимости от ситуации, вы всегда можете передать какой-то ключ к фильтру, а затем внутри фильтра вы можете найти соответствующее значение в зависимости от того, какой источник данных вы предпочитаете.это позволит вам получить нестатические данные в вашем методе, хотя было бы неплохо, если бы они были такими же простыми, как ваш пример: -)

1 голос
/ 07 января 2011

Вы не можете передать это, но вы можете сделать что-то вроде:

public  class TestFilterAttribute : ActionFilterAttribute
{


    public string UserId
    {
        get
        {
            return AppSettings["UserId"];
        }
    }



}
1 голос
/ 07 января 2011

Нет, нет. Атрибуты включаются в метаданные результирующей сборки, и все значения должны быть известны во время компиляции. Вы можете передавать только постоянные значения в качестве свойств атрибута. И это ограничение .NET, а не MVC.

...