PDA

View Full Version : حرفه ای: مشکل در افزودن داینامیک فیلد به فرم jquery و بایند کردن آن



aliblue
دوشنبه 28 مهر 1393, 18:19 عصر
با سلام.فرض کنید یک کلاس داریم به صورت زیر:

public class product
{
public string Title { get; set; }
public string Price { get; set; }
}
و در صفحه 2 input داریم که به فیلد های این کلاس بایند می شوند.
حال می خواهیم که یک دکمه باشد که با هر بار کلیک آن،یک جفت input دیگر به صفحه اضافه شوند با (jQuery) و در controller لیستی از product را بگیریم.
برای اینکار لازم است که خاصیت name مربوط به input ها را به اینصورت مقداردهی کنیم:

برای جفت اول:product[0].Title , product[0].Price
برای جفت دوم:product[1].Title , product[1].Price
برای جفت سوم:product[2].Title , product[2].Price

مانند لینک زیر:
http://www.techiesweb.net/asp-net-mvc3-dynamically-added-form-fields-model-binding/

تا اینجای کار مشکلی ندارد و بسیار از آن اسفاده کرده ام. اما مشکلی که هست اینه که برای هر کدام از این جفت input های اضافه شده یک دکمه حذف هم گذاشتم که در صورت لازم می توان جفت input اضافه شده را حذف کرد.
حال با این اوضاع، کاربر می تواند چندین بار بر روی دکمه Add کلیک کند و index مثلا به 3 می رسد.حال 2 تای آخری را پاک میکند و بار دیگر 2 بار بر روی Add کلیک می کند. حالا در صفحه 4 جفت input داریم به صورت زیر:

برای جفت اول:product[0].Title , product[0].Price
برای جفت دوم:product[1].Title , product[1].Price
برای جفت سوم:product[4].Title , product[4].Price
برای جفت چهارم:product[5].Title , product[5].Price

همان طور که می بینید، بین index لیست فاصله افتاده و هنگامی که فرم را به Action می فرستیم، در لیست تنها 2 product وجود دارد و 2 تای بعدی Bind نشده اند. چاره چیست؟