MVC 正在跳过我的 else 吗?

Posted

技术标签:

【中文标题】MVC 正在跳过我的 else 吗?【英文标题】:MVC is skipping my else? 【发布时间】:2018-03-21 10:42:34 【问题描述】:

我有一个应用程序,如果用户登录,我想在其中更改导航栏。

<ul class="nav navbar-nav navbar-right">
     <p class="navbar-btn">
         <a href="#" class="btn btn-default">Winkelwagen</a>

             @if (@Model == null || Model.isSucces == false)
             
                  <a href="@Url.Action("Login", "Home")" class="btn btn-default">Inloggen</a>
             

             else
             
                  if (Model.isSucces)
                  
                        <a href ="@Url.Action("Login", "Home")" class="btn btn-default">Mijn Account</a>
                  
              

</ul>

因此,当我登录时,程序应该转到 else 中的 if,但它从来没有出现过。

希望大家能帮帮我。

【问题讨论】:

为什么不@if (Model != null &amp;&amp; Model.isSuccess) ... else ... if () ... else if () ... 的结构看起来很奇怪。 @Corak 我以前做过,但我有一个 nullreferenceexeption... 嗯...这就是Model != null 应该防止的。 &amp;&amp; 说,“检查右侧当且仅当左侧返回真”。 NullRef 应该是不可能的。 - 顺便提一句。我对 Razor 并不太了解,但也许您需要在 if 前面的 else 中再添加一个 @ 【参考方案1】:

我对您的代码进行了一些更改。简单语义优化,去掉不必要的@符号,关闭段落标签。

<ul class="nav navbar-nav navbar-right">
    <p class="navbar-btn">
        <a href="#" class="btn btn-default">Winkelwagen</a>

        @if (Model == null || !Model.isSucces)
        
            <a href="@Url.Action("Login", "Home")" class="btn btn-default">Inloggen</a>
        
        else if (Model.isSucces)
        
            <a href ="@Url.Action("Login", "Home")" class="btn btn-default">Mijn Account</a>
        
    </p>
</ul>

【讨论】:

以上是关于MVC 正在跳过我的 else 吗?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Visual Studio 在调试时会跳过我的方法?

为啥 yocto 跳过我的食谱?

Java 数据阅读器跳过我的空新行 (\n)

if 块的第一个条件被跳过

跳过测试文件 Jest 中的一项测试

"虐待"过我的老师们,你们如今还好吗