Есть ли способ перенаправить страницу, когда URL-адрес предоставляется в адресной строке в MVC? - PullRequest
0 голосов
/ 28 августа 2018

У меня есть вид с именем Reports, в соответствии с которым у меня есть 2 разных вида с именами Races и Sire. Я называю эти 2 представления частичными представлениями на странице Reports.

Когда пользователь вводит http://localhost:53987/Reports/Reports# в адресной строке, он загружает Races и Sire, которые являются основными представлениями, как частичные внутри Reports. Но я хочу, чтобы, когда пользователь вводил http://localhost:53987/Races/Races# в адресную строку, он перенаправлял это на http://localhost:53987/Reports/Reports#.

Может кто-нибудь предложить мне, как это сделать.

Reports Просмотр

 <ul class="nav nav-tabs">
            <li class="active"><a data-toggle="tab" href="#Race">Race</a></li>
            <li><a data-toggle="tab" href="#sire">Sire</a></li>
        </ul>
        <div class="tab-content">
            <div id="race" class="tab-pane fade">
                @Html.Partial("~/Views/Racing/Race.cshtml", Model.clsRace)
            </div>
            <div id="sire" class="tab-pane fade">
                @Html.Partial("~/Views/Sire/Sire.cshtml", Model.clsSire)
            </div>

        </div>

1 Ответ

0 голосов
/ 28 августа 2018

Если все, что вы делаете, это визуализируете эти партиалы, используя @Html.Partial(), тогда ваши методы контроллера не нужны, и вы можете просто удалить их (пользователь получит 404: Not Found, если он попытается перейти к этим URL-адресам).

Если, однако, вы использовали @Html.Action() для их рендеринга (поскольку вам пришлось выполнить некоторый код в контроллере для генерации партиала), то методы должны быть помечены атрибутом [ChildActionOnly] (что предотвращает навигацию пользователя). им.

Если вы хотите разрешить пользователю вводить эти URL-адреса в адресной строке, но перенаправить на ../Reports/Reports, тогда вы можете создать для них определенные определения маршрутов, например

routes.MapRoute(
    name: "Races",
    url: "Races/Races",
    defaults: new { controller = "Report", action = "Report" }
);

и найдите их перед любыми другими соответствующими маршрутами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...