如何在视图中声明变量

时间:2014-06-03 13:29:16

标签: c# html asp.net-mvc-4 razor

我在view应用中有一个asp.net-mvc4来访问来自controllermodel的数据。

@model IEnumerable<ViewExampleDatabase4.Models.Messung>

@section Scripts{
@*@Scripts.Render("~/bundles/jqueryval")*@
<script type="text/javascript">
    $(document).ready(function () {
        $(".datefield").datepicker();
    });


</script>
}

<table style="background-color: #009963; font-weight: lighter; font-size: 15px;   
text-align:    center;" width="740" height="20" cellspacing="2" cellpadding="5" border="1">
<tr>
<td style="background-color: #009963; color: #FFFFFF" colspan="3">
    <b> Messungen für Fahrzeug : @Html.Raw(ViewBag.Fahrzeugname)       </b>
</td>
</tr>
</table> 



@using (Html.BeginForm("ForFahrzeug", "Messungen", FormMethod.Get))
{     
     <!--Messungsart: @Html.DropDownList("Total")-->   
      <P>Messungen der letzten Tage: @Html.TextBox("days", "30", new { style =   
"width:5%"     }) Oder Messungen begin von:
      @Html.TextBox("initDate" ,"", new { style = "width:15%", @class = "datefield" })     
und    Ende: 
      @Html.TextBox("finalDate" ,"", new { style = "width:15%", @class = "datefield" })   


     <input type="submit" value="Filter" /> </p> 
} 




<table>

 var total = 0;

@foreach (var item in Model)
{
   total  =  total + item.t_Gesamtzeit_s_msg; 




if(Model.Last()==item)
{
  <table style="background-color: #009963; font-weight: lighter; font-size: 12px;    
text-align: center; " width="740" height="30" cellspacing="2" cellpadding="5">

  <tr>
     <td style="background-color: #009963; color: #FFFFFF" colspan="3"> Summary </td>
  </tr>

  <tr style = "border:1px solid #FFFFFF">
     <td style="background-color: #CCCCCC; color: #000000; border:1px solid #FFFFFF"> 
 <b>Gesamtzeit</b></td>
     <td style="background-color: #CCCCCC; color: #000000; border:1px solid 
 #FFFFFF">@Html.Raw(total)</td>
     <td style="background-color: #CCCCCC; color: #000000; border:1px solid 
 #FFFFFF">Messende</td>
     <td style="background-color: #CCCCCC; color: #000000; border:1px solid #FFFFFF"></td>
  </tr>


  </table>   
 }

 }


</table>


 <table>
<tr>
    <th>
        @Html.DisplayNameFor(model => model.Name) 
    </th>

    <th>
        @Html.DisplayNameFor(model => model.Messbeginn)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.Messende)
    </th>

</tr>


 @foreach (var item in Model)
 {

<tr>
    <td width="8%">            
        @Html.ActionLink(item.Name, "MessungsDetail", "Messungen", new { id = item.ID },   
null) 
    </td>
    <!--<td width="35%">
        @Html.DisplayFor(modelItem => item.Beschreibung)
    </td>-->
    <td width="10%">
        @Html.DisplayFor(modelItem => item.Messbeginn)
    </td>
    <td width="8%">
        @Html.DisplayFor(modelItem => item.Messende)
    </td>        
    <!--<td width="10%">
        @Html.ActionLink("Download", "ForDownload", "Messungen", new { id = item.ID },  
 null)            
    </td>-->
</tr>
 }


 </table>

因为我已声明变量total。但是当我用它来增量时。它给了erorr。我需要一个变量来使用。

1 个答案:

答案 0 :(得分:0)

您需要声明代码块:

@{ var total = 0; }

由于您之前有“HTML标记”,因此total = total + item.t_Gesamtzeit_s_msg;之后的@foreach并非“自动检测”。

但是正如评论中已经说过的那样:这应该由模型处理而不是视图。

AND 我还建议仅使用英文名称,因为如果以后“非德语人”应该维护代码,可能会导致可维护性问题。