Я использую orchardcms 1.9 (без создания тэга). Я пишу настраиваемый модуль, который реализует свой собственный контроллер, который вызывает службу, которая проверяет некоторую информацию и на основе ответа службы я либо перенаправляю, либо оставляю пользователя на странице.Вид с пользовательского контроллера, переопределяющего вид по умолчанию
Модуль находится на уровне по умолчанию, другими словами, он находится на каждой странице. Поэтому, когда пользователь пытается войти в систему или зарегистрировать этот модуль, обычно проверяет информацию.
Это мой маршрут:
new RouteDescriptor {
Priority = -1,
Route = new Route(
"{*path}", // this is the name of the page url
new RouteValueDictionary {
{"area", "modulename"}, // this is the name of your module
{"controller", "controllername"},
{"action", "Redirect"}
},
new RouteValueDictionary(),
new RouteValueDictionary {
{"area", "modulename"} // this is the name of your module
},
new MvcRouteHandler())
и это мой контроллер:
public ActionResult Redirect()
{
String response = _authService.VerifyRegistration(_orchardServices.WorkContext.CurrentUser);
if (response.Equals("2"))
{
Response.Redirect("~/Registration");
}
else if (response.Equals("3"))
{
Response.Redirect("~/Users/Account/LogOn");
}
return View();
}
Что происходит, что, когда я иду на регистрацию или контроллер Логин триггеров, проверяет инфокоммуникационных, говорит не редирект необходимо, а затем возвращает вид. Но поскольку представление пустое, моя страница пуста, а не форма входа/регистрации по умолчанию.
Как я могу это решить? Я ошибаюсь в маршрутизации, что как-то переопределяю представление по умолчанию (я пробовал разные приоритеты, но тот же ответ).
Вы не должны использовать 'Response.Redirect' (или даже' Response', если на то пошло) из действия контроллера. Вместо этого используйте результат перенаправления. –
Да, я искал это, но проблема, когда не перенаправление, по-прежнему остается прежним, возвращаемое представление переопределяет представление по умолчанию страницы входа/регистрации. Я верю, что это из-за маршрутов, которые переопределяют действие по умолчанию, но не знают, как этого избежать. –
Ну, не совсем ясно, что вы ожидаете, должно случиться. –