• 1400/05/04

تکرار حلقه for به اندازه حلقه foreach در Asp.net Core :

سلام دوستان من میخوام حلقه for به اندازه حلقه forech پر بشه یک شمارنده گذاشتم واز نظز ارسال مقادیر به اکشن درست کار میکنه ولی در ویو اگر من 4 تا شخص دارم همونا رو تکرار میکنه.تصویر رو ببینید متوجه میشید.

اینها فقط 4 شخص هسن و وقتی داده های آنها رو به اکشن میفرسم درست همین 4 فرستاده میشن ولی در ویو میبیند تکرار شدن

کد رو هم ببینید

 

        @{
                int n = 1;
            }

            <form action="/Home/paySalery" method="post">

                @foreach (var item in Model.ProjectViewModels)
                {
                  
                    @for (var i = 0; i < n; i++)
                    {

                  
                    <tr>
                        <td class="tablehead">@item.PersonName</td>
                        <td><input class="" type="text" style="width: 25px" 
                         name="[@i].workDay" /> 
                        </td>
                        <td><input class="" type="text" style="width: 30px" name=" 
                   [@i].AzafeKaryMinet" /></td>
                        <td><input class="" type="text" style="width: 30px" name=" 
                    [@i].mamoriatDay" /></td>
                        <td><input class="tablehead" type="text" style="width: 60px"nam=" 
                    [@i].haghGhza" /></td>
                        <td><input class="tablehead" type="text" style="width: 60px"nam=" 
                   [@i].padash" /></td>


                    </tr>

                     
                    }
                    n++;
                }
                <button class="btn btn-success mb-4" type="submit">ثبت حقوق</button>

                </form

 

همینطور که مبینید یه شمارنده گذاشتم ولی در ویو درست عمل نمیکنه من میخوام حلقه for به تعداد اشخاص موجود در model بچرخه

  • 1400/05/06
  • ساعت 12:18

سلام دوست عزیز

با توجه به سوال قبلی که پرسیده بوید و سوال الان شما، چیزی که من متوجه شدم اینه که شما کلا نیازی به اون Foreach ندارید ! کافیه فقط با استفاده از یه حلقه For اطلاعاتی که نیاز دارید رو روی صفحه بچینید

حالا اگه به سوال قبلیتون نخوایم رجوع کنیم و ملاک صرفا همین سوال شما باشه که میخواید هربار حلقه For شما به تعداد آیتم های حلقه Foreach شما اجرا بشه ، کافیه بجای n ، تعداد آیتم های لیست Foreach  رو جایگزین کنید به اینصورت :

 @for (var i = 0; i < Model.ProjectViewmodels.Count; i++)

اما فکرنکنم خروجی که توی ذهنتون هست رو بهتون بده و باید از روش اولی که خدمتتون عرض کردم استفاده کنید.

اگر نیازی به توضیح مجدد و اضافه ای بود من درخدمتم، فقط قبلش لطف بفرمایید ساختار ViewModel و نحوه پاس دادن اطلاعات به این ویو و پاس دادن این اطلاعات به اکشن جهت ثبت اطلاعاتتون رو توضیح بدید.

موفق باشید.


logo-samandehi