Аргумент атрибута должен быть константным выражением, выражением typeof или выражением создания массива типа параметра атрибута

Вот постоянный класс, который я использую для вызова некоторых помощников:

public static class SecurityHelpers
{
    public static string AntiforgeryTokenSalt = "tokenFooYouTolkienBladeRunner";         
}

И вот как я вызываю его в одной из моих форм в моем веб-приложении MVC3:

@using (Html.BeginForm("Index", "Checkout", FormMethod.Post))
{   
    <input type="hidden" name="amount" value="@Model.PackageCost"/>
    <input type="hidden" name="currency" value="$"/>
    <input type="hidden" name="itemdescription" value="@Model.PackageDescriptor"/>
    <input type="hidden" name="type" value="digital"/>
    @Html.AntiForgeryToken(App.WebUI.Helpers.SecurityHelpers.AntiforgeryTokenSalt)

    <input type="submit" value="Confirmar" class="btn primary frmsubmit" />
}

И в моем Контроллере:

[HttpPost]
[ValidateAntiForgeryToken(Salt = SecurityHelpers.AntiforgeryTokenSalt)]
public ActionResult Index(decimal amount, string currency, string itemDescription, string type)
{
    if (!User.Identity.IsAuthenticated) return RedirectToAction("LogOn", "Account");
}

Ошибка возникает в моем контроллере, в нем говорится:

Аргумент атрибута должен быть константным выражением, выражением typeof или выражением создания массива типа параметра атрибута

Любые идеи, почему это не ' т работает? Атрибут Salt декоратора ValidateAntiForgeryToken является строкой, а моя константа также является строкой, поэтому я запутался.

9
задан Only Bolivian Here 18 October 2011 в 14:56
поделиться