Asp.net 困难中的赋值

Asp.net 困难中的赋值,asp.net,asp.net-mvc-3,Asp.net,Asp.net Mvc 3,我有下面的代码,这是发射错误 错误1无效的表达式项“=” @{ 内部利益; } @如果(@item.interest.HasValue) { @利息=@item.Interest.Value.ToString(“F2”); } 试试这个: @{ string Interest; } <td>@if (@item.interest.HasValue) { Interest= @item.interest.Value.ToString("F2");

我有下面的代码,这是发射错误

错误1无效的表达式项“=”

@{
内部利益;
}
@如果(@item.interest.HasValue)
{
@利息=@item.Interest.Value.ToString(“F2”);
}
试试这个:

@{

string Interest;
}

 <td>@if (@item.interest.HasValue)
    {

        Interest= @item.interest.Value.ToString("F2");
    }
@{
串利息;
}
@如果(@item.interest.HasValue)
{
利息=@item.Interest.Value.ToString(“F2”);
}

顺便说一下,您正在尝试将字符串(ToString()的结果)分配给整数。这将不起作用。

声明变量时,需要分配此变量:

@{
    string Interest = "";
}
然后:

@if (item.interest.HasValue)
{
    Interest = item.interest.Value.ToString("F2");
}

这是说,这样做,在一个观点是一个非常糟糕的设计。我的意思是,基于某些条件声明和分配变量不是应该放在视图中的逻辑。该视图用于显示数据。此逻辑应转到控制器或视图模型。

在@if块中,您可以在不使用
@
符号的情况下处理变量

@if (@item.interest.value) {
   @item= @item.interest.Value
}
被解释为:

@if (@item.interest.value) {
     Write(item=);
     Write(@item.interest.Value);
}
如您所见,
Write(item=)
不是有效的C代码

你应使用:

 @if (item.interest.value) {
     item = item.interest....
 }
编译
if(@item….)
语句的原因,带有
@
符号。这是因为您可以在标识符前面加@以使用保留字作为标识符名称

 @if (item.interest.value) {
     item = item.interest....
 }