Как открыть соответствующий вид при нажатии на ссылку в MVC - PullRequest
0 голосов
/ 28 августа 2018

Я хочу открыть соответствующий вид при нажатии на ссылку в MVC.

_layout

<li>@Html.ActionLink("Racing", "Reports", "Reports", null, null, "RacingFilter", null, new { @id = "RacingId" })</li>
<li>@Html.ActionLink("Sire", "Reports", "Reports", null, null, "SireReportsFilter", null, new { @id = "SireId" })</li>

Просмотр отчетов

   <ul class="nav nav-tabs">        
        <li><a data-toggle="tab" href="#racing">Racing Reports</a></li>
        <li><a data-toggle="tab" href="#sire">Sire Reports</a></li>
    </ul>
    <div class="tab-content">           
        <div id="racing" class="tab-pane fade">
            @Html.Partial("~/Views/Racing/Racing.cshtml", Model.clsRacing)
        </div>
        <div id="sire" class="tab-pane fade">
            @Html.Partial("~/Views/SireReports/SireReports.cshtml", Model.clsSireReports)
        </div>

    </div>

Jquery

   $('#RacingId').click(function (e)            
            $('#racing').show();
        });

1 Ответ

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

То, что вы пытаетесь сделать, не работает, потому что событие щелчка jquery сработает, прежде чем вы будете перенаправлены на новую страницу. Вы можете это так.

У вас могут быть ваши ссылки для отправки другого параметра.

@Html.ActionLink("Racing", "Reports", "Reports", null, null, "RacingFilter", new { tab = "RacingTab" }, new { @id = "RacingId" })
@Html.ActionLink("Sire", "Reports", "Reports", null, null, "SireReportsFilter", new { tab = "SireTab" }, new { @id = "SireId" })

В вашем контроллере вы извлекаете это значение и сохраняете его в Viewbag или добавляете в свою модель, чтобы передать на страницу.

 public ActionResult Reports(string tab)
 {
      this.ViewBag.Tab = tab;
      return this.View(Model);
 }

и в вашем отчете вы можете сделать это

   <script>
       $(document).ready(function() {
           $("#@ViewBag.Tab").tab('show');
       });
   </script>
   <ul class="nav nav-tabs">        
        <li><a id="RacingTab" data-toggle="tab" href="#racing">Racing Reports</a></li>
        <li><a id="SireTab" data-toggle="tab" href="#sire">Sire Reports</a></li>
    </ul>
    <div class="tab-content">           
        <div id="racing" class="tab-pane fade">
            @Html.Partial("~/Views/Racing/Racing.cshtml", Model.clsRacing)
        </div>
        <div id="sire" class="tab-pane fade">
            @Html.Partial("~/Views/SireReports/SireReports.cshtml", Model.clsSireReports)
        </div>
    </div>

Это должно сработать.

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

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