2012-01-06 9 views
10

मैं एक ऐसा एप्लीकेशन विकसित कर रहा हूं जहां मुझे नियंत्रक से उपयोगकर्ता के मान को देखने के लिए पास करना होगा। मैं ViewData की कोशिश की http://msdn.microsoft.com/en-us/library/system.web.mvc.viewdatadictionary.aspxएएसपीनेट में देखने के लिए नियंत्रक से मूल्य कैसे पास करें?

नियंत्रक में मेरे कोड के रूप में दी

public ActionResult Index(string UserName, string Password) 
{ 
     ViewData["UserName"] = UserName; 
     return View(); 
} 

जहां उपयोगकर्ता नाम और पासवर्ड एक और रूप से प्राप्त किया जाता है।

और ध्यान में रखते हुए कोड

@{ 
    ViewBag.Title = "Index"; 
} 
<h2>Index</h2> 
<%= ViewData["UserName"] %> 

है लेकिन जब मैं इस कोड को चलाने के लिए, प्रदर्शन ", <% = ViewData [" उपयोगकर्ता नाम "]%> के बजाय वास्तविक उपयोगकर्ता नाम का कहना है कि पता चलता है, उदाहरण के लिए XYZ "।

मुझे वास्तविक उपयोगकर्ता नाम कैसे प्रदर्शित करना चाहिए?

आपकी मदद के लिए अग्रिम धन्यवाद।

उत्तर

12

आप यहाँ उस्तरा वाक्य रचना का उपयोग कर रहे हैं, लेकिन आप बड़े asp.net वाक्य रचना के साथ मिला है, का उपयोग

@ViewData["UserName"] 
बजाय

भी कोशिश कर रहे हैं, आम तौर पर आप को देखने के बैग का उपयोग नहीं होता दृश्य को डेटा पास करने के लिए। मानक अभ्यास एक मॉडल (एक मानक वर्ग) बनाने के लिए है जो आपके व्यू (पेज) के डेटा के सभी बिट्स को आपके नियंत्रक (रिटर्न व्यू (myModel) से देखने के लिए उस मॉडल को पास करता है;)

ऐसा करने के लिए आप अपने दृश्य में उपयोग कर रहे हैं तो आप भी मॉडल के प्रकार की घोषणा करने की जरूरत है

@model Full.Namespace.To.Your.MyModel 

एक बुनियादी MVC मॉडल ट्यूटोरियल के लिए http://msdn.microsoft.com/en-us/gg618479 पढ़

6

ऐसा लगता है कि आप वेब से उस्तरा दृश्य इंजन का उपयोग कर रहे बल्कि फॉर्म व्यू इंजन। इसके बजाय निम्नलिखित प्रयास करें:

@{ 
    ViewBag.Title = "Index"; 
} 
<h2>Index</h2> 
@ViewData["UserName"] 
0

'व्यूबैग' एमवीसी 2 से एक होल्डओवर है। एमवीसी 3 विकास दृढ़ता से टाइप 'ViewModel का उपयोग करना चाहिए।

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