首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MVC中单击链接时打开相应的视图

如何在MVC中单击链接时打开相应的视图
EN

Stack Overflow用户
提问于 2018-08-28 17:05:27
回答 1查看 32关注 0票数 0

我想在点击MVC中的链接时打开相应的视图。

_Layout

代码语言:javascript
复制
<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>

报告视图

代码语言:javascript
复制
   <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

代码语言:javascript
复制
   $('#RacingId').click(function (e)            
            $('#racing').show();
        });
EN

回答 1

Stack Overflow用户

发布于 2018-08-28 18:01:52

您正在尝试做的事情并不起作用,因为jquery click事件将在您被重定向到新页面之前触发。你可以这样做。

你可以让你的another链接发送另一个参数。

代码语言:javascript
复制
@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中,或者将其添加到模型中以将其传递到页面中。

代码语言:javascript
复制
 public ActionResult Reports(string tab)
 {
      this.ViewBag.Tab = tab;
      return this.View(Model);
 }

在您的reports视图中,您可以这样做

代码语言:javascript
复制
   <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只能支持一个请求,所以如果你在控制器上做任何重定向,那么你需要做一些小调整。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52054034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档