2011-09-23 14 views
30

में विचारों में स्थानीय चर की सरल वृद्धि, ठीक है, यह सिर्फ शर्मनाक है। मैं एएसपी.नेट एमवीसी 3 (रेजर) में अपने विचारों में से एक में एक साधारण वृद्धि का भी आकलन नहीं कर सकता। मैंने खोज की है और ऐसा लगता है कि रेजर के लिए प्रलेखन काफी अस्पष्ट है। यहाँ मैं क्या करने की कोशिश की और बुरी तरह विफल रहे हैं:एएसपी.नेट एमवीसी 3 (रेजर)

@{ 
    var counter = 1; 

    foreach (var item in Model.Stuff) { 
     ... some code ... 
     @{counter = counter + 1;} 
    } 
} 

मैं भी @{counter++;} की कोशिश की है बस के लिए kicks और कोई लाभ नहीं हुआ =) मैं इसकी सराहना करता है, तो किसी ने मुझे प्रबुद्ध सकता है। धन्यवाद!

उत्तर

58
@{ 
    int counter = 1; 

    foreach (var item in Model.Stuff) { 
     ... some code ... 
     counter = counter + 1; 
    } 
} 

स्पष्टीकरण:

@{ 
// csharp code block 
// everything in here is code, don't have to use @ 
int counter = 1; 
} 

@foreach(var item in collection){ 
    <div> - **EDIT** - html tag is necessary for razor to stop parsing c# 
    razor automaticaly recognize this as html <br/> 
    this is rendered for each element in collection <br/> 
    value of property: @item.Property <br/> 
    value of counter: @counter++ 
    </div> 
} 
this is outside foreach 
+0

धन्यवाद। मैंने दोनों की कोशिश की है। पहला पृष्ठ कम से कम पृष्ठ को लोड करता है लेकिन फ़ोरैच लूप इसे पहले लूप से पहले नहीं बनाता है जो मुझे बताता है कि काउंटर के साथ कुछ गलत हो गया है। दूसरा सुझाव संकलन त्रुटि की ओर जाता है। –

+1

क्या आपने काउंटर को int के रूप में घोषित करने का प्रयास किया था? वास्तव में संपादित करें, यह असाइन किया गया है जब ... –

+0

हां, 'int काउंटर' का उपयोग करके मेरे लिए काम किया। सहायता के लिए धन्यवाद! =) –

16

मैं यहाँ उत्तर नहीं मिलता सी # में बहुत उपयोगी था - तो यहाँ किसी को भी इस पेज के लिए आ रहा C# उदाहरण के लिए तलाश के लिए एक काम कर उदाहरण है:

@{ 
int counter = 0; 
} 


@foreach(Object obj in OtherObject) 
{ 
    // do stuff 
    <p>hello world</p> 
    counter++; 
} 

बस, जैसा कि हम पहले से ही @foreach में हैं, हमें किसी भी @ {} मानों में वृद्धि को बढ़ाने की आवश्यकता नहीं है।

2

एक और साफ दृष्टिकोण होगा:

@{ 
    var counter = 0; 
} 
<section> 
    @foreach(var hat in Ring){ 
     <p> Hat no. @(++counter) </p> 
    }   
</section> 
7

तो तुम सब करने की जरूरत है नंबर प्रदर्शित है, एक और भी सफाई घोल वेतन वृद्धि और वापसी एक ही बार में है ASP.NET में दृश्यों में स्थानीय चर की वृद्धि के लिए निम्नलिखित कोड देखें, इसके लिए मेरे काम ठीक है।

var i = 0; 
@foreach (var data in Model) 
{ 
    i++; 
    <th scope="row"> 
      @i 
    </th>.... 
}... 
+0

एकमात्र समाधान जो मेरे लिए काम करता है – kobe

+1

Ditto। मुझे लगता है कि कुंजी ++ काउंटर के आसपास कोष्ठक है। –

1

:

<div> 
@{int counter = 1; 
foreach (var item in Model) 
{ 
    <label>@counter</label> 
    &nbsp; 
    @Html.ActionLink(item.title, "View", new { id = item.id }) 
    counter++; 
} 
} 
</div> 
संबंधित मुद्दे