2010-05-13 7 views
7
public ActionResult Edit(int id, FormCollection formValues) { 

    // Retrieve existing dinner 
    Dinner dinner = dinnerRepository.GetDinner(id); 

    // Update dinner with form posted values 
    dinner.Title = Request.Form["Title"]; 
    dinner.Description = Request.Form["Description"]; 
    dinner.EventDate = DateTime.Parse(Request.Form["EventDate"]); 
    dinner.Address = Request.Form["Address"]; 
    dinner.Country = Request.Form["Country"]; 
    dinner.ContactPhone = Request.Form["ContactPhone"]; 

    // Persist changes back to database 
    dinnerRepository.Save(); 

    // Perform HTTP redirect to details page for the saved Dinner 
    return RedirectToAction("Details", new { id = dinner.DinnerID }); 
} 

formValues विधि में उपयोग नहीं किया जाता है। इसका उद्देश्य क्या है? कैसे FormCollection यहाँ प्रयोग किया जाता है परasp.net mvc formcollection

+0

व्यूमोडल्स का उपयोग करने पर विचार करें http://www.jacopretorius.net/2010/01/use-view-models-instead-of-formcollection.html – Custodio

उत्तर

1

बस कुछ टिप्पणी करने के लिए,

  1. dinner.EventDate = DateTime.Parse(Request.Form["EventDate"]); क्या मॉडल बंधन से छुटकारा पाने के आते है। दृढ़ता से टाइप किए गए दृश्य का उपयोग करके, आपको डेटटाइम प्रकार को रात्रिभोज में वापस लेना चाहिए। EventDate, स्वयं को असाइन करने के बिना।

  2. FormCollection सभी आदानों कि एचटीएमएल फ़ॉर्म के माध्यम से प्रस्तुत किया गया वापस आती है और आप निम्न सिंटैक्स formCollection["Title"] दी का उपयोग कर कि इनपुट तत्व का नाम है "शीर्षक"

द्वारा उन तत्वों को पुनः प्राप्त करने में सक्षम हैं मजबूत टाइप किए गए विचार सिर्फ अद्भुत हैं!

25

एमवीसी की प्रमुख प्रगति में से एक इस बाएं - दाएं उबाऊ असाइनमेंट कोड से छुटकारा पा रहा है। इसमें ऐसी व्यवस्थाएं हैं जो आपके लिए यह काम कर सकती हैं। इस मामले में, आप ऐसा कुछ कर सकते हैं:

Dinner dinner = dinnerRepository.GetDinner(id); 
UpdateModel(dinner, formValues); // Automatically updates properties with values from the collection 
dinnerRepository.Save(); 

आशा है कि इससे मदद मिलती है।

+0

क्या मैं बना सकता हूं या [जोड़ें] (https://msdn.microsoft। com/en-us/library/system.web.mvc.formcollection.add (v = vs.118) .aspx) मॉडल [गुण] से 'formcollection' के मान) (http://stackoverflow.com/questions/737151/ कुंजी मूल्य जोड़ी में कैसे-ऑफ-ए-क्लास-ऑफ-ए-क्लास-ऑफ-ए-क्लास)? – stom