2
@if (Model.Something != null)  
{ 
<span id="SpanID">Model.SomethingElse</span> 
}  
else  
{
<span id="SpanID">Model.SomethingElse2</span>
}

我收到错误。此页面上的另一个对象已使用 ID“SpanID”。我想通过仅使用 ID(而不是使用类)来实现这一点,因为很多其他事情都依赖于此。

4

2 回答 2

3

声明一个变量并在您的范围内使用它。

@{
    var result = Model.Something != null ? 
        Model.SomethingElse : Model.SomethingElse2;
}

<span id="SpanID">@result</span>

正如 Alex 提到的,最好的方法是将此逻辑移动到控制器并ViewModel仅使用视图所需的数据填充 a。这也使您的更多代码可测试。

于 2013-10-15T16:11:24.510 回答
1

你可以重写它:

@{
    if (Model.Something != null) {
        ViewData["whatever"] = Model.SomethingElse;
    }
    else {
        ViewData["whatever"] = Model.SomethingElse2;
    }
}

<span id="SpanID">@ViewData["whatever"]</span> 

或者使用 ViewModel,将检查从 View 移动到 Controller(我认为它所属的地方)。

于 2013-10-15T15:52:29.233 回答