çünkü ekranda herhangi bir şekilde bunun karşılığı yok ekranda ne varsa form sana post ederken sadece onları post eder ya mevcutta bir nesneyi değişkende tut yada ekrana o grüntülemek istemediğin değerleri hidden field ile yazdır ki form sana tekrar objeyi dnerken o değerleri verebilsin...

Selamlar arkadaşlar ben bir oda reservasyon formu yazıyorum ancak biryerde takıldım. Konunun zü şyle Kullanıcı 2 adet oda istiyor biri tek kişilik bitanesi 2 kişilik bu odalarda kalacakların bilgilerini dolduracağı bir form getiroyurm karşısına ve aşağıdaki gibi bir form ekrana basılıyor. 1. Oda (1 yetişkinin kalacağını varsayıyorum) 1. Yetişkin -Adı Soyadı -Tc kimlik 2. Oda (2 yetişkinin kalacagını varsayıyorum) 1. Yetişkin -Adı Soyadı -Tc kimlik 2. Yetişkin -Adı Soyadı -Tc kimlik Bu bilgileri alacak olan html formu oluşturup ekrana basıyorum ancak benim hangi bilginin hangi odaya ait olduğunu bilmem gerekiyor ki ona gre reservasyon işlemini gerçekleştireyim bir kaç yntem düşündüm (name leri dinamik yapmak gibi rnek name="oda_0_0" yani 1. odanın 1. yetişkini gibi) ama bu yol baya bir karmaşık olacak gibi geldi. Buraya danışayım istedim bu formdaki değerleri en sade şekilde odalara ayırarak nasıl yakalayabilirim? Not : asp. net mvc kullanarak yazıyorum

Hocam ilgin için çok teşekkürler zahmet edip uzun uzun yazmışsın. Seneryom şu şekilde sisteme kullanıcı üye olarakda olmadanda alışveriş yapabiliyor, oyuzden alacagım bir referans Id yok, db den almak konusundada şyle bir düşüncem var post edilmeden nce bir guid referansıyla bunu db e kaydetmek ancak buradada işlem siparişe dnüşmez ise bunu yakalamak lazım. 2. madde de ki controllar değişkeninin çalışma prensibi konusunda bir sorum olacak eğer ben controllerda değişkeni tanımlarsam aynı anda o controllerde işlem yapan başka oturumlarda bu değişken set olur mu yani o değişken sadece o oturuma mı aittir? Benim istediğim tutar verisini db e kaydetmeden her oturum için ayrı ayrı tutabilmek ve sonra bu veriyi okuyabilmek.

genel olarak kullanılan yntem veritabanında ki bir obje ise tekrardan veriyi veri tabanından çekip kullanmandır. yok veri tabanına kaydetmeyeceğin geçici bir verisi ise global bir değişken tanımlayıp o değişken üzerinde saklayabilirsin oda olmadı cache e atabilirsin. hidden field üzerinde tutarsan veri client tarafında değiştirilip post edilebilir veya bozulabilir, riskli bir veri ise hiç bu ynteme başvurma ama bir nceki sayfada yine kullanıcıdan aldığın senin için herhangi birşey değiştirmeyecek bir veri ise bu yntemi tercih edebilirsin daha kullanışlı ve anlamlı olur. Bu tip işlemler için session pek tercih edilmez. viewbag türevi kullanımlarda tek taraflıdır, action methoda veri dnmezler. ...

Selamlar arkadaşlar dediğiniz gibi model gnderip aldığımda problem çzüldü teşekkürlerimi sunuyorum :)

session oturuma zgüdür controller nesnesi açtığın sayfaya zgüdür http://en. wikipedia. org/wiki/Session_ burada detaylı olarak anlatıyor...

veriyi mvc de aynı şekilde class ile post edebiliyorsun mvc nin kendi form yapısını kullan class larınıda serializable yap mvc kendisi zaten sana form verisini aynı şekilde class nesnene bind ediip verir RNEK...

Aynen abi bende onu diyorum :) bunu peki en doğru şekilde nere tutabilirim manipule edilmesini istemediğim alanlar session harici pekte bir olanak yok herhalde.

Ne farkedecek ki o zaman hocam? O parametrelerde gidecekmi gidecekse manipule edilebilir olacaktır diye düşünüyorum. ?

Anladım yani bir değişken atayayım her kullanıcı için zel olsun ve taşınabilsin ve aynı zamandada db e kaydetmeyeyim byle bir dünya yok yani. Birde session bile değil demişsin Session benzersiz değilmi yani her işlem yapan için ayrı ayrı session Id lerı olusmuyormu ve bylece de unique leşmiş olmuyormu? Edit : Anladım sanırım sen aynı tarayıcıda farklı işlem yapılamaz ı kast ediyorsun sanırım, evet yapılmasın da zaten bu işlemler basamak basamak ve ben bu basamakların ilkinde bu session u clearlayıp yenisinin olusmasını sağlayabilirim ama dediğin gibi sessionda da ileride çoklu işlemlerde şişme olabilir diyorsun haklısın. LuCiFeR tarafından 18/Ara/14 16:39 tarihinde düzenlenmiştir

genel olarak kullanılan yntem veritabanında ki bir obje ise tekrardan veriyi veri tabanından çekip kullanmandır. yok veri tabanına kaydetmeyeceğin geçici bir verisi ise global bir değişken tanımlayıp o değişken üzerinde saklayabilirsin oda olmadı cache e atabilirsin. hidden field üzerinde tutarsan veri client tarafında değiştirilip post edilebilir veya bozulabilir, riskli bir veri ise hiç bu ynteme başvurma ama bir nceki sayfada yine kullanıcıdan aldığın senin için herhangi birşey değiştirmeyecek bir veri ise bu yntemi tercih edebilirsin daha kullanışlı ve anlamlı olur. Bu tip işlemler için session pek tercih edilmez. viewbag türevi kullanımlarda tek taraflıdır, action methoda veri dnmezler. Evet nemli bir veri abi değiştirilmesini istemiyorum tutarı saklayacagım cunku orada, global değişken hiç kullanmadım cachede yle bunlar bu tarz durumlar için kullanılan kabul grmüş metodlarmıdır hocam yani bu ve benzeri işlemlerde bunlardan mı yararlanılır? Edit : Global derken static class larımı diyorsun abi eğer yleyse ben her oturum / ziyaretçi için benzersiz ayrı tutulmasını istiyorum o yuzden o olmaz sanırım yada nasıl yapılır çok fikir yürütemedim. LuCiFeR tarafından 18/Ara/14 15:41 tarihinde düzenlenmiştir

FormCollection kullanma. Sayfaya model olarak hangi tipi verdiysen, form postlanınca Action methoduna o tipten geri dner tüm formun. Ehl-i Byte

Aşağıdakilerden bold olanları ekrana @Html. TextBoxFor şeklinde yazdırıyorum ama ekrana yazdırmadıgım yani html çıktısını almadıgım Total ve HotelId gibi değerler post edilince controllerda null grünüyor. public List RoomInfo public List Rooms public decimal Total public int HotelId Mantıken ekranda olmayan alanlar, postlanınca da null olarak dner. Bunun nüne geçmek için o alanları formda Html. HiddenFor içinde tutabilirsin, geri postlandığında tüm objen dolu gelir. Bu şekilde yapmayacaksan da, o zaman sadece ilgili alanları okursun aldığın nesneden, viewdaki formda kullanmadığın alanlar null olacağından onları kullanmazsın. Ehl-i Byte

Şimdi şyle bir durum szkonusu oldu, view da bastım verileri html helperlarla ve textboxforlar la ancak viewda ekrana basmadıgım ama basarken modele doldurdugum parametreler var onlar viewdan post olunca boşalıyor bunun nüne nasıl geçebilirim? Not : session, viewdata, hidden Input vs kullanmadan. LuCiFeR tarafından 18/Ara/14 12:44 tarihinde düzenlenmiştir

Yok abi işin orasında değilim ben formdan gelen veriler kısmındayım yani post edılen actionresult da hangi bilgi hangi odaya ait onu yakalamam lazım.

Aşağıdakilerden bold olanları ekrana @Html. TextBoxFor şeklinde yazdırıyorum ama ekrana yazdırmadıgım yani html çıktısını almadıgım Total ve HotelId gibi değerler post edilince controllerda null grünüyor. public List<RoomInfo> RoomInfo public List<Room> Rooms public decimal Total public int HotelId LuCiFeR tarafından 18/Ara/14 14:33 tarihinde düzenlenmiştir

edit saybirs tarafından 15/Ara/14 19:20 tarihinde düzenlenmiştir

kişi için kendin bir class tanımlarsın sonra birde oda için class tanımlarsın kisi. cs adı soyadı oda. cs list<kisi> kisiler sonra list<oda> odalar değişkeni ile istediğin gibi kontrol edersin...

FormCollection kullanma. Sayfaya model olarak hangi tipi verdiysen, form postlanınca Action methoduna o tipten geri dner tüm formun. adam haklı bootstraplada html inputlari sekle sokarsin ooh mis. Form collection bana cok gereksiz ve kisitlayici geliyor. Framework yapisi her zaman kolaylik saglamiyo bence

daha açıklayıcı anlatabilirmisin vey o kısmın kodlarını yazabilirsen daha fazla yardımcı olabilirim...

controller bütün kullanıcılar değil session bile değil istek başına oluşturulan bir nesnedir. Hatta istek yapan kişi isteğini yenilemek için sayfayı yenilese değerleri kaybeder o yüzden dedim dikkat etmen gerekir isteği yeniden oluşturup handle etmen verinin kaybolmasına sebep olur. ...

ajax kullan?

kabul grmüş bir yntem mi? tartışılır bu kişiye düşünce tarzına veya kullandığınız yapıya gre kaynaklarınıza gre değişir. ben kendi adıma yorum yapacak olursam bu tip işlemler için session kullanmıyoruz zellikle çok kullanıcı sistemlerde byle herşeyi sessiona atarsan session şişebiliyor . Ayrıca aynı kullanıcı iki farklı ekranda iki farklı kişi için aynı işlemi yapıyorsa session üzerinde bu çakışmanın kontrolünü yapman gerekir ki bu işlerini iyice karıştırır. sizin işleme gelirsek 1. tutar eğer netleşmiş bir tutar ise veri tabanına kaydedin bir daha ki sefere işlem yapacağınız zaman veri tabanından çekin 2. controller içerisinde global değişken tanımlayın action işleminde ihtiyaç duyduğunuz yerde veriyi buradan alıp kullanın controller istek karşılığında oluşturulduğu için başka sayfa başka işlem yapsada çakışma olmaz yanlız burada sayfayı yeniden handle edersen veriyi kaybedersin buna dikkat etmelisin 3. cache yntemi ile veriyi tutmak için cache işlemide komple sunucu üzerinde olup herkesin erişebildiği bir işlemdir. rn sen "tutar" parametresi ile birşey sakladığın zaman bunu tüm kullanıcıların işlemlerinde okuyabilirsin veya üzerine veri yazabilirsin bunun içinde session ve işlem bilgilerini içerecek şekilde key belirlemen gerekir. 4. session üzerinde tutmak istersen de bir kullanıcı için bir tek session olur sessionda bir key ile bir değer kaydedersen bütün açtığı sayfalarda o kullanıcı o değeri grür yani aynı anda aynı işlemi iki farklı kişi için yapamaz anlamına geliyor. bunun içinde cache için olduğu gibi islemBazlı bir key kullanman gerekir ve işlem bitiminde bu keyi temizlemen gerekir çünkü sessionda cache gibi zaman aşımı olayı yok kullanıcı oturumu kapanana kadar o veri orada kalır ve uzun süreli işlemlerde session şişer. 5. en basit çzüm olarak veriyi kendine zgü bir şifreleme algoritması ile veya herhangi bir geri dnüşümlü algoritma ile şifreleyip hidden field içerisinde sayfaya gnderebilirsin tekrar veriyi aldığında şifresini çzer kullanırsın . Not : ücret ile alakalı işlemlerde en çok kullanılan ve en garanti yntem işlemler bitip veri tabanına kaydedilirken parametreler ile tekrar ücret hesaplaması yapmandır. senin işlemin için 5. yntem bence en basit ve kullanışlı yntem olur. yine de seçim sana kalmış...