मेरे पास एक व्यूमोडेल है जो इस तरह की एक बहुत ही सरल फ़िल्टर ऑब्जेक्ट है:

public class FilterViewModel
{
    public String FilterTerm { get; set; }
    public String FilterProperty { get; set; }
}

मैं जो करने की उम्मीद कर रहा था वह किसी अन्य पृष्ठ से रूट लिंक करना था और इस तरह रूट वैल्यू में रूट यूआरएल निर्माण में मेरा फ़िल्टर व्यू मॉडेल पास करना था:

Url.RouteUrl("myRoute", new { filter = new FilterViewModel() { FilterProperty = "Product", FilterTerm = _detail.FilterTerm }})"

लो, दूसरी तरफ क्या प्रस्तुत करता है

http://theurl?filter=Fully.Qualified.Namespace.FilterViewModel

मुझे नहीं पता कि मुझे क्या उम्मीद थी, शायद ऐसा कुछ जो क्वेरी स्ट्रिंग में क्रमबद्ध है:

http://theurl?filter=FilterProperty|Product,FilterTerm|ProductA

क्या वैसे भी ऐसा करने के लिए मैं बॉक्स से बाहर करने की कोशिश कर रहा हूं? (या बॉक्स से बाहर नहीं)

0
Rikon 6 अक्टूबर 2011, 01:44

1 उत्तर

सबसे बढ़िया उत्तर

इस तरह प्रयास करें:

Url.RouteUrl(
    "myRoute", 
    new { 
        FilterProperty = "Product", 
        FilterTerm = _detail.FilterTerm 
    }
)

पता नहीं आपका रूटिंग कॉन्फ़िगरेशन कैसा दिखता है, लेकिन यह http://theurl?FilterProperty=Product&FilterTerm=ProductA की तर्ज पर कुछ उत्पन्न कर सकता है। आपके द्वारा अपने प्रश्न में दिखाए गए यूआरएल जैसे कुछ और विदेशी के लिए आपको कस्टम हेल्पर्स लिखना होगा। यह कुछ भी मानक नहीं है।

1
Darin Dimitrov 6 अक्टूबर 2011, 01:47
ठीक है, बहुत बढ़िया ... मैं इसे अत्यधिक जटिल कर रहा था ... यह मेरी समस्या का सही कार्यान्वयन है ... मैंने सोचा कि मुझे नियंत्रक के विधि पैरा में इस संरचना की नकल करनी होगी ... लेकिन मैंने नहीं किया, मैंने मेरी विधि को इस प्रकार रखा गया: MyAction (FilterViewModel फ़िल्टर) और यह सही ढंग से बाध्य है ... आपकी मदद के लिए धन्यवाद, मैं कभी-कभी मॉडल बाध्यकारी पर लटका हुआ हूं।
 – 
Rikon
6 अक्टूबर 2011, 18:42