ASP.NET MVC Bootstrab选项卡单击Controller \ Action问题

时间:2016-11-16 20:30:01

标签: asp.net-mvc twitter-bootstrap bootstrap-tabs

问题:在Bootstrap Tabs面板中,我们如何在相应的标签内容区域中显示MVC View页面?

详细信息:以下示例(取自here)在我的ASP.NET MVC Core项目中正常工作。但是,使用anchor tag helper我希望在用户点击标签时调用操作方法;当我这样做时,我得到以下错误。例如,我在标签Menu 1中出现此错误,我使用asp-controllerasp-action属性,如下所示。我知道错误与href属性相关,该属性与相应的选项卡内容相关。有没有解决方法,所以我们仍然可以在单击选项卡时调用操作方法?:

错误

Cannot override the 'href' attribute for <a>

错误就在这一行<li><a data-toggle="tab" href="#menu1" asp-controller="myController asp-action="myAction">Menu 1</a></li>

如果未使用锚标记帮助程序,则以下工作

<div class="container">
  <h2>Dynamic Tabs</h2>
  <ul class="nav nav-tabs">
    <li class="active"><a data-toggle="tab" href="#home">Home</a></li>
    <li><a data-toggle="tab" href="#menu1">Menu 1</a></li>
    <li><a data-toggle="tab" href="#menu2">Menu 2</a></li>
    <li><a data-toggle="tab" href="#menu3">Menu 3</a></li>
  </ul>

  <div class="tab-content">
    <div id="home" class="tab-pane fade in active">
      <h3>HOME</h3>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
    </div>
    <div id="menu1" class="tab-pane fade">
      <h3>Menu 1</h3>
      <p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
    </div>
    <div id="menu2" class="tab-pane fade">
      <h3>Menu 2</h3>
      <p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam.</p>
    </div>
    <div id="menu3" class="tab-pane fade">
      <h3>Menu 3</h3>
      <p>Eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.</p>
    </div>
  </div>
</div>

1 个答案:

答案 0 :(得分:0)

您需要做的是在所需的标签内容中调用{{1}}。保留href不变,目的只是根据选项卡ID显示相应的选项卡。

请参阅以下问题: Create controller for partial view in ASP.NET MVC