У меня есть настраиваемый атрибут, который проверяет условия и перенаправляет пользователя к частям приложения, как это необходимо в соответствии с требованиями бизнеса. Приведенный ниже код является типичным:.Как проверить путь в ASP.NET MVC 2?
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
// ...
if (condition)
{
RouteValueDictionary redirectTargetDictionary = new RouteValueDictionary();
redirectTargetDictionary.Add("action", "MyActionName");
redirectTargetDictionary.Add("controller", "MyControllerName");
filterContext.Result = new RedirectToRouteResult(redirectTargetDictionary);
}
// ...
base.OnActionExecuting(filterContext);
}
Я просто попросил, чтобы позволить пользователю выбрать страницу по умолчанию, они прибывают на при входе в При добавлении этой функции, я заметил, что пользователь может получить некоторое необычное поведение, если нет действия/контроллера, соответствующего странице пользователя по умолчанию (т. е. если приложение было изменено). В настоящее время я использую что-то вроде кода ниже, но я думаю о том, чтобы перейти к явным действиям/контроллерам.
else if (condition)
{
var path = "~/MyControllerName/MyActionName";
filterContext.Result = new RedirectResult(path);
}
Как проверить правильность результата, прежде чем назначить его filterContext.Result? Я хочу быть уверенным, что это соответствует рабочей части моего приложения, прежде чем я перенаправляю - иначе я не буду назначать его filterContext.Result.