2015-02-27 9 views
16

WebAPI में मैं [FromUri] के साथ एक नियंत्रक कार्रवाई पर एक पैरामीटर को सजाने कर सकते हैं, यदि आप होगा, एक POCO मॉडल में URI 'deserialized' के घटकों के लिए; उर्फ मॉडल बाध्यकारी।एएसपी.नेट एमवीसी में समतुल्य WebApi [FromUri] क्या है?

2.0 के बाद से MVC का उपयोग कर के बावजूद, मैं इसे वेबसाइटों के लिए उपयोग नहीं किया है (पता नहीं क्यों)। एएसपी.नेट एमवीसी 5 में इसके बराबर क्या है?

विशेषता जब तक कि मैं एक पुस्तकालय को संदर्भित करने की जरूरत है आईडीई में मान्यता प्राप्त होना प्रतीत नहीं होता।

मैं ~/thing/2014/9 चाहते हैं उसके नीचे मॉडल के लिए बाध्य करने के लिए:

public class WhateverModel 
{ 
    public int Year { get; set; } 
    public int Month { get; set; } 
} 

धन्यवाद

अद्यतन

अन्य प्रश्न में (ऊपर लिंक), ओ पी का कहना है:

हालांकि, इसे सादा एमवीसी पर वेबएपीआई पर स्विच करें और डिफ़ॉल्ट मॉडल बाइंडर टूट जाता है और संपत्ति को बांध नहीं सकता नेस्टेड सरणी में वस्तुओं पर es

जिसका अर्थ है कि वह WebApi से विशेषता का उपयोग कर रहा है। मेरा अनुमान। मेरे पास उन संदर्भ नहीं हैं, क्योंकि मैं एमवीसी में हूं, इसलिए (एबी) वेबएपी के संस्करण का उपयोग एमवीसी में करने के लिए स्वीकार्य तरीका है?

अद्यतन 2

उस प्रश्न का उत्तर में है:

आप अपनी क्वेरी स्ट्रिंग का सम्मान MVC मॉडल बांधने की मशीन नामकरण सम्मेलनों का निर्माण करने की जरूरत है।

इसके अतिरिक्त [FromUri] अपने उदाहरण कार्रवाई में विशेषता पूरी तरह से, नजरअंदाज कर दिया है, क्योंकि यह MVC DefaultModelBinder के लिए जाना जाता

तो मैं अभी भी पृथ्वी पर क्या करते हैं या ओपी भी में के बारे में बात कर रहा था कि क्या जानते हुए भी बिना छोड़ दी जाती हूँ नहीं कर रहा है वह सवाल, अगर उसे गलत विशेषता के साथ कुछ सफलता मिल रही थी।

मुझे लगता है मैं एक स्पष्ट जवाब नहीं है और है कि अन्य प्रश्न के कीचड़ के लिए उम्मीद कर रहा हूँ।

+0

के संभावित डुप्लिकेट (http [का उपयोग करना \ [FromUri \] विशेषता नेस्टेड सरणी के साथ जटिल वस्तु बाँध]।कॉम/प्रश्न/17578878/उपयोग-सेउरी-एट्रिब्यूट-बाइंड-कॉम्प्लेक्स-ऑब्जेक्ट-साथ-नेस्टेड-सरणी) – Sam

+0

हाय सैम, प्रश्न में मेरा अपडेट देखें। –

+1

क्षमा करें, मुझे लगता है कि मुझे प्रश्न समझ में नहीं आया। जब तक आपके मॉडल में सभी गुण आदिम प्रकार या स्ट्रिंग होते हैं, तो आपको एमवीसी के मॉडल बाध्यकारी में निर्मित यूआरआई क्वेरी स्ट्रिंग के माध्यम से इसे बाध्य करने के लिए अतिरिक्त कुछ करने की आवश्यकता नहीं है। कोडेकस्टर का जवाब ठीक काम करना चाहिए। – Sam

उत्तर

22

यह बस काम करेंगे ™:

[HttpGet] 
public ActionResult Thing(WhateverModel model) 
{ 
    // use model 
    return View(); 
} 

कम से कम, जब URL /thing?Year=2014&Month=9 का उपयोग कर।

समस्या अपने मार्ग है। यूआरएल /thing/2014/9 एमवीसी के डिफ़ॉल्ट मार्ग का उपयोग नहीं करेगा, क्योंकि यह /{controller}/{action}/{id} है, जहां {id} एक वैकल्पिक int है।

सबसे आसान विशेषता मार्ग का उपयोग करने के होगा:

[HttpGet] 
[Route("/thing/{Year}/{Month}"] 
public ActionResult Thing(WhateverModel model) 
{ 
    // use model 
    return View(); 
} 

यह अपने मॉडल के लिए URL नक्शा होगा। // stackoverflow: -

+1

मैं अपने प्रश्न का उत्तर देने के लिए यहां वापस आया, यह सिर्फ काम करेगा :-) मैंने हस्ताक्षर में एक मॉडल फंस लिया और यह अभी किया। मैं पहले से ही विशेषता रूटिंग का उपयोग कर रहा था, आप। वैसे भी, सही। धन्यवाद। मुझे हमेशा लगता है कि मॉडल बाध्यकारी शरीर में पेलोड के लिए था। –

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