9

हाय एमवीसी के लिए नया है और मैंने एमवीसी उपयोगकर्ता नियंत्रणों को बनाने के तरीके के बारे में कोई भाग्य नहीं लिया है, जिसमें व्यूडेटा उनके पास लौटा है। मैं उम्मीद कर रहा था कि कोई इस समस्या से संपर्क करने के तरीके पर चरण-दर-चरण समाधान पोस्ट करेगा। यदि आप अपना समाधान बहुत विस्तृत बना सकते हैं जो बहुत मददगार होगा।एमवीसी उपयोगकर्ता नियंत्रण + व्यूडाटा

मेरे प्रश्न के साथ इतना अलग होने के लिए खेद है, मैं यह स्पष्ट करना चाहता हूं कि मैं जो करने की कोशिश कर रहा हूं वह एक नियंत्रक एक्शन्रेसल्ट विधि में एक आईडी पास कर रहा है और इसे सीधे नियंत्रक से उपयोगकर्ता नियंत्रण में प्रस्तुत करना चाहता है। मैं इस दृष्टिकोण से कैसे शुरुआत करना चाहता हूं और सोच रहा हूं कि यह भी संभव है या नहीं। यह अनिवार्य रूप मेरे मन में इस

public ActionResult RTest(int id){ 
RTestDataContext db = new RTestDataContext(); 
var table = db.GetTable<tRTest>(); 
var record = table.SingleOrDefault(m=> m.id = id); 

return View("RTest", record); 
} 

की तरह दिखाई देगा और मेरे उपयोगकर्ता नियंत्रण में मुझे लगता है कि रिकॉर्ड की वस्तुओं रेंडर करने के लिए पसंद है और मेरी समस्या thats होगा।

उत्तर

8

यदि मैं आपका प्रश्न समझता हूं, तो आप उपयोगकर्ता नियंत्रण में व्यूडेटा पास करने का प्रयास कर रहे हैं। एक उपयोगकर्ता नियंत्रण अनिवार्य रूप से, एक आंशिक दृश्य है, इसलिए आप इस करना होगा:

<% Html.RenderPartial("someUserControl.ascx", viewData); %> 

अब आप अपने usercontrol में, ViewData जो कुछ भी आप में पारित कर दिया ...

+0

आपका मतलब है <% एचटीएमएल। रेंडरपार्टियल ("someUserControl", viewData); %> यदि आप अपनी फ़ाइल को साझा फ़ोल्डर में डालते हैं –

0

मैं कर रहा हूँ यकीन है कि दृश्य डेटा इतने लंबे समय आप System.Web.Mvc.ViewUserControl का विस्तार करने और में मैं कोड का एक टुकड़ा है इसे पारित रूप में उपयोगकर्ता नियंत्रण के अंदर पहुंचा जा सकता है:।

<%Html.RenderPartial("~/UserControls/CategoryChooser.ascx", ViewData);%> 

और भीतर से मेरी श्रेणी चयनकर्ता ViewData सुलभ है।

0

सुनिश्चित नहीं हैं कि अगर मैं आपकी समस्या को पूरी तरह से समझने के लिए किया जाएगा, लेकिन यहां मेरा जवाब है कि "अपने एएसपी.नेट एमवीसी प्रोजेक्ट में उपयोगकर्ता नियंत्रण कैसे जोड़ें"।

विजुअल स्टूडियो 2008 में, आप आइटम जोड़ें चुन सकते हैं। बाईं तरफ श्रेणियों में, आप विजुअल सी #> वेब> एमवीसी चुन सकते हैं। एक विकल्प एमवीसी देखें उपयोगकर्ता नियंत्रण है। इसे चुनें, एक नाम चुनें, वांछित मास्टर पेज का चयन करें और आप जाने के लिए अच्छे हैं।

1

यहाँ ठीक यह जाता है - हम JSON डेटा

aspx पेज हम एक ajax कॉल कि नियंत्रक कॉल में इस्तेमाल करते हैं। AJAX कॉल के लिए उपलब्ध विकल्प पैरामीटर देखें।

यूआरएल: यह कक्षा में फ़ंक्शन को कॉल करता है। (जाहिर है) हमारा क्लास नाम जॉब कंट्रोलर है, फ़ंक्शन का नाम अपडेट जॉब है और इसमें कोई पैरामीटर नहीं है। यूआरएल कक्षा नाम से नियंत्रक अनुपात को छोड़ देता है। उदाहरण के लिए UpdateJob फ़ंक्शन को कॉल करने के लिए यूआरएल '/ जॉब/अपडेट जॉब /' होगा।

var data = {x:1, y:2}; 
$.ajax({ 
data: data, 
cache: false, 
url: '/ClassName/functionName/parameter', 
dataType: "json", 
type: "post", 
success: function(result) { 
//do something 
}, 
error: function(errorData) { 
alert(errorData.responseText); 
} 
} 
); 

JobController कक्षा में:

public ActionResult UpdateJob(string id) 
{ 
    string x_Value_from_ajax = Request.Form["x"]; 
    string y_Value_from_ajax = Request.Form["y"]; 
    return Json(dataContextClass.UpdateJob(x_Value_from_ajax, y_Value_from_ajax)); 
} 

हम एक Global.asax.cs पेज कि ajax कॉल नक्शे की है।

public class GlobalApplication : System.Web.HttpApplication 
    { 
     public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
routes.MapRoute("Default",     // Route name 
    "{controller}/{action}/{id}",  // URL with parameters 
     new { controller = "EnterTime", action = "Index", id = "" } // Parameter defaults (EnterTime is our default controller class, index is our default function and it takes no parameters.) 
    ); 
    } 
} 

मुझे आशा है कि यह आपको अच्छी शुरूआत में लाएगा। शुभकामनाएं

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