.net - एएसपी.नेट एमवीसी फ्रेमवर्क और डाटाबेसिंग




asp.net-mvc (2)

आपके मॉडल डेटा पुनः प्राप्त करते हैं, आपके प्रस्तुतकर्ता इस दृश्य के लिए डेटा का आयोजन करता है, और दृश्य नियंत्रण आपके मॉडल को UI तत्वों के साथ बाध्य कर रहा है। उदाहरण के लिए, यहां एक LogEvent के लिए एक मॉडल है:

public class LogEvent{
  public string Title {get;set;}
  public string Date {get;set;}
  public string Message {get;set;}

  // this is for example only; you would most likely bind directly against the host.GetAllLogs() result
  public static IEnumerable<LogEvent> RetrieveAllLogs(ILogProvider host){
    return from x in host.GetAllLogs() select new LogEvent(x.LogTitle, x.Date, x.Message);
  }

नियंत्रक जो सभी लॉग देखने के लिए उपयोगकर्ता अनुरोध को संभालता है:

[DependencyPropertyLolJk]
protected ILogProvider MyLogProvider {get;set;} // set by DI

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Logs()
{
    return View("Logs", LogEvent.GetAllLogs(MyLogProvider).OrderByDescending(x => x.Date));
}

और यहां यह दृश्य है और यह मॉडल को कैसे बांधता है:

<!-- header left out for brevity -->
<table>
    <thead>
        <tr>
            <th>
                Date
            </th>
            <th>
                Title
            </th>
            <th>
                Message
            </th>
        </tr>
    </thead>
    <% foreach(var log in ViewData.Model) %>
    <tr>
<td><%= log.Date %></td>
<td><%= log.Title %></td>
<td><%= log.Message %></td>
    </tr>
    <% }; %>
</table>

<!-- ... -->

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

जब आपका यूआई जटिल हो जाता है, तो सबसे आसान बात यह है कि HtmlHelper क्लास में एक्सटेंशन बनाना है। यहां दो उदाहरण दिए गए हैं जो यह दिखाते हैं कि यह आपके UI की जटिलता को कैसे घटा सकता है: HtmlHelper GridView और पेजर नियंत्रण मैंने समान सहायक विधियों का निर्माण किया है, और इसके बहुत उल्लेखनीय है कि आप लैम्ब्दास के अंदर html और इनलाइन कोड कैसे मिला सकते हैं अब अगर डिजाइनर इस तरह के मिश्रित कोड / मार्कअप को ठीक से स्वरूपित करने में सक्षम था ...

मुझे MVC ढांचे के पीछे कुछ अवधारणाओं को समझने में कुछ परेशानी हो रही है I मैं एक बहुत सरल अनुप्रयोग कर रहा हूं जो उत्पादों को श्रेणीबद्ध करता है

क्रिएशन स्क्रीन बस श्रेणियों की सूची, उत्पाद का नाम दिखाने और सबमिट करने वाली एक ड्रॉपडाउन सूची का उपयोग करेगा।

एक सामान्य। नेट ऐप पर, मैं Page_Load में एक सर्वर ड्रॉपडाउन सूची को बताता हूं, लेकिन एक एमवीसी ऐप में, डेटाबेस से मेरी श्रेणियां पुनर्प्राप्त करने और उन्हें ड्रॉपडाउन सूची में जोड़ने का सबसे अच्छा तरीका क्या है?

(क्षमा करें, मेरा प्रश्न बेहद नोओबिश है लेकिन दुर्भाग्य से संसाधन एमवीसी पर अतिरिक्त हैं, और अक्सर प्रारंभिक बदलावों के कारण उदाहरणों को तोड़ा जाता है)


मुझे यकीन नहीं है कि मैं पूरी तरह से समझता हूं, लेकिन अगर आपका पृष्ठ एकल उत्पाद प्रदर्शित कर रहा है और केवल एक उपयोगकर्ता इनपुट सिर्फ एक ड्रॉप डाउन सूची से एक श्रेणी का चयन करने के लिए है, तो मैं मदद को क्रमबद्ध कर सकता हूँ (लेकिन मैं भी एक नोओक हूँ!) ।

इस पृष्ठ को संदर्भित करना:

http://weblogs.asp.net/scottgu/archive/2008/05/27/asp-net-mvc-preview-3-release.aspx

आप श्रेणियों के लिए अपने नियंत्रक में एक SelectList बनाना चाहते हैं (शायद एक आईडी का संदर्भ दे रहे हैं, और एक नाम प्रदर्शित करना)। फिर आप अपने SelectDist को अपने ViewData में जोड़ें। आप वैकल्पिक रूप से इसे अपने ViewData.Model और संदर्भ के हिस्से के रूप में सेट कर सकते हैं जो कि आपके व्यू से।

आपके विचार में आप DropDownList के लिए HtmlHelper का उपयोग करते हैं जो कि एक पैरामीटर के रूप में एक SelectList लेता है

ऊपर दिए गए लिंक को बेहतर बता देना चाहिए, यह सिर्फ एक त्वरित सारांश है यह लिंक पूर्वावलोकन 3 के लिए है, लेकिन मुझे लगता है कि यह अभी भी लागू होना चाहिए।





asp.net-mvc