2011-11-01 14 views
6

आपके पूरे मॉडल के लिए उपयोग करने के लिए एक तरह से (या कुछ simular)क्या पूर्ण मॉडल के लिए @ Html.HiddenFor का उपयोग करने का कोई तरीका है?

@Html.HiddenFor 

है।

बजाय कुछ इस तरह कर रही है की:

कुछ इस तरह
@Html.HiddenFor(model => Model.Person.Name) 
    @Html.HiddenFor(model => Model.Person.LastName) 
    @Html.HiddenFor(model => Model.Address.Street) 

उपयोग (इस उदाहरण काम नहीं करता है)

@Html.HiddenFor(model => Model) 

मैं पहले से ही stackoverflow और गूगल पर इसके लिए खोज की है। .. लेकिन इसके बारे में कुछ भी नहीं मिला है।

मुझे विभिन्न मॉडलों के लिए कुछ मानों को पकड़ने की आवश्यकता है जो डीबी में सहेजे नहीं गए हैं, इसलिए केवल HTML का उपयोग करें। आईडी के लिए आईडी मेरे लिए एक विकल्प नहीं है।

अग्रिम धन्यवाद!

+0

ऐसा करने के लिए नहीं चाहता! आपके पास पास की गई इकाई की प्राथमिक कुंजी होनी चाहिए, फिर उसे सर्वर की ओर बैक अप देखें ... अन्यथा ग्राहक अपना पता बदल सकता है आदि। यदि आप उन्हें डीबी में नहीं सहेजते हैं, लेकिन उन्हें जारी रखने की आवश्यकता है, सत्र या कुकीज़ का उपयोग करें या स्थानीय स्टोरेज या इसके बजाय कुछ – Milney

उत्तर

7

गुण आप एक छिपा इनपुट में रहना चाहता हूँ का चयन करें और इस प्रकार अपने मॉडल में HiddenInputAttribute जोड़ें:

public class MyModel 
{ 
    [HiddenInput] 
    public int MyProperty { get; set; } 
} 
+0

@ डारिन और @ हेथम धन्यवाद, मैं इन सप्ताह के दोनों उत्तरों के अंत का परीक्षण करूंगा! – Gyocol

3

आप MVCContrib's Html.Serialize method पर एक नज़र डाल सकते हैं। यह सॉर्टा व्यूस्टेट इम्यूलेशन है (और आंतरिक रूप से यह वास्तव में व्यूस्टेट का उपयोग करता है :-))।

एक वैकल्पिक दृष्टिकोण केवल एक छिपे हुए क्षेत्र के रूप में एक अद्वितीय आईडी को स्टोर करना होगा और नियंत्रक कार्रवाई के अंदर इस आईडी का उपयोग अपने अंतर्निहित डेटा स्टोर से संबंधित मॉडल लाने के लिए करेगा।

संबंधित मुद्दे

 संबंधित मुद्दे