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 && Model.isSuccess) ... else ...
? if () ... else if () ...
的结构看起来很奇怪。
@Corak 我以前做过,但我有一个 nullreferenceexeption...
嗯...这就是Model != null
应该防止的。 &&
说,“检查右侧当且仅当左侧返回真”。 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 吗?的主要内容,如果未能解决你的问题,请参考以下文章