ASP Перенаправление MVC, не изменяя URL (маршрутизация)

Это похоже на внутреннее сообщение об ошибке aurora (которое объясняет, почему Google не мог предложить что-то особенное, когда вы его искали). Я думаю, что правильный путь - обратиться в службу поддержки AWS.

6
задан budi 23 June 2017 в 20:41
поделиться

4 ответа

Я с Ником на этот раз, хотя я думаю, что вы могли бы просто использовать обычные представления вместо того, чтобы делать частичные , Вам может потребоваться реализовать их как общие представления, если они не находятся в представлениях, соответствующих контроллеру (поскольку он будет смотреть только в связанных и общих представлениях).

public ActionResult TestRouting(string query)
{
    if (query == "NewYork")
    {
        var model = ...somehow get "New York" model
        return View("Index", model );
    }
    else if (query == "name-of-business")
    {
        var model = ...get "nameofbusiness" model
        return View("Details", model );
    }
    else
    {
        return View("TestTabs");
    }
}

Затем каждое представление будет принимать конкретный экземпляр модели и отображать это содержание с использованием модели. URL-адрес не изменится.

Каждый раз, когда вы используете RedirectResult, вы фактически отправляете HTTP-перенаправление в браузер, и это вызывает изменение URL-адреса.

5
ответ дан 16 December 2019 в 21:46
поделиться

Вы говорите, что хотите перейти на «www.mysite.com/NewYork», а затем «действительно» перейти «куда-нибудь еще», но оставить URL-адрес в покое? Возможно, что вы хотели бы сделать, это использовать частичные представления для реализации этого? Таким образом, ваша базовая страница будет направлена ​​на то, на что вы будете перенаправлены, и затем внутри этой страницы вы проводите тестирование условий, чтобы вызвать различные частичные представления? Я сделал это в своем приложении для просмотра либо только для чтения версии сетки, либо редактируемой сетки. Это сработало очень хорошо.

0
ответ дан 16 December 2019 в 21:46
поделиться

Я не уверен, что вы можете сделать с перенаправлением на страницу .aspx, но вы должны быть в состоянии замените RedirectToAction (...) s на что-то вроде этого:

public ActionResult TestRouting(string query)
{
    if (query == "NewYork") 
    {
        var controller = new AvailabilityController();        
        return controller.Index();
    }
    else if (query == "name-of-business")
        return Redirect("nameofbusines.aspx?id=2731");       <--------- not sure
    else 
    {
        var controller = new TestController();        
        return controller.TestTabs();
    }

}
0
ответ дан 16 December 2019 в 21:46
поделиться

Я не уверен, пробовали ли вы этот способ или у него есть какие-либо недостатки ..

Добавить файл global.asax в ваш проект. В этом случае добавьте следующий метод:

void Application_BeginRequest(object sender, EventArgs e)
{
    // Handles all incoming requests
    string strURLrequested = Context.Request.Url.ToString();
    GetURLToRedirect objUrlToRedirect = new GetURLToRedirect(strURLrequested); 
    Context.RewritePath(objUrlToRedirect.RedirectURL);
}

GetURLToRedirect может быть классом, который имеет логику для поиска фактического URL-адреса на основе введенного URL-адреса. Свойство [RedirectURL] будет установлено с URL-адресом для перенаправления под листами.

Надеюсь, что это поможет ...

1
ответ дан 16 December 2019 в 21:46
поделиться
Другие вопросы по тегам:

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