.NET MVC имеют RedirectToAction со строгим контролем типов?

Я не уверен насчет проблемы с памятью, но я видел проблему «Отказано в разрешении». По некоторым причинам папка «/ user / spark / applicationHistory / local-1547821006998» принадлежит пользователю «cloudera», а не искра, поэтому искра не может написать ей. Чтобы решить эту проблему, войдите в виртуальную машину и добавьте групповую супергруппу в пользовательскую искру: ура "usermod -G supergroup saprk", Дорон

19
задан User 11 May 2012 в 02:36
поделиться

2 ответа

Нет, это не делает.

protected RedirectToRouteResult RedirectToAction<T>(Expression<Action<T>> action, RouteValueDictionary values) where T : Controller
{
    var body = action.Body as MethodCallExpression;

    if (body == null)
    {
        throw new ArgumentException("Expression must be a method call.");
    }

    if (body.Object != action.Parameters[0])
    {
        throw new ArgumentException("Method call must target lambda argument.");
    }

    string actionName = body.Method.Name;

    var attributes = body.Method.GetCustomAttributes(typeof(ActionNameAttribute), false);
    if (attributes.Length > 0)
    {
        var actionNameAttr = (ActionNameAttribute)attributes[0];
        actionName = actionNameAttr.Name;
    }

    string controllerName = typeof(T).Name;

    if (controllerName.EndsWith("Controller", StringComparison.OrdinalIgnoreCase))
    {
        controllerName = controllerName.Remove(controllerName.Length - 10, 10);
    }

    RouteValueDictionary defaults = LinkBuilder.BuildParameterValuesFromExpression(body) ?? new RouteValueDictionary();

    values = values ?? new RouteValueDictionary();
    values.Add("controller", controllerName);
    values.Add("action", actionName);

    if (defaults != null)
    {
        foreach (var pair in defaults.Where(p => p.Value != null))
        {
            values.Add(pair.Key, pair.Value);
        }
    }

    return new RedirectToRouteResult(values);
}

, Который должен работать.

17
ответ дан 30 November 2019 в 02:52
поделиться

Это также включено в MVC Contrib в качестве метода расширения на вашем контроллере, наряду с множеством других строго типизированных функций для обработки, тестирования и т. Д. ModelState. Это хорошо стоит взять на себя дополнительную зависимость от того, что он предлагает.

25
ответ дан 30 November 2019 в 02:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: