2010-08-06 11 views
11

यदि हां, तो मुझे पैरामीटर कैसे पास करना चाहिए? एनम नाम से मेल खाने वाली स्ट्रिंग ठीक होगी? यह आसान होगा अगर मैं एक ड्रॉपडाउन बॉक्स पास कर रहा था जो समेकित वस्तुओं से मेल खाता था।क्या मैं एक एनम को नियंत्रक में पास कर सकता हूं ताकि मॉडल बाइंडर इसे बांध सके?

this answer में प्रस्तुत समाधान का उपयोग करना उपयोगी होगा अगर मैं डेटा को वापस सबमिट करते समय आसानी से enum से बांध सकता हूं।

उत्तर

15

हाँ, जब की तरह एक नियंत्रक होने:

enum MyAction { Lalala } 

public ActionResult Index(MyAction action) { ... } 

तुम बस Index/Lalala कर सकते हैं, और सब कुछ ठीक काम करता है।

आप और अधिक जटिल बंधन (एक जटिल वर्ग के लिए एक निश्चित स्ट्रिंग मान मानचित्रण की तरह) की जरूरत है, StructureMap की तरह कुछ का उपयोग करें।

3

यह और भी बेहतर आप भी Enum पारित कर सकते हैं हो जाता है के रूप में पैरामीटर प्राप्त

@Html.ActionLink("Email Quote", "UnitDetails", "Journey", new { product = product.ProductTitle, button = "email" }, new { @class = "btn btn--main btn--main-orange" }) 

कि इस यूआरएल समाप्त होता है: http://localhost:50766/UnitDetails?product=Your%20quote&button=email

कार्रवाई विधि है कि इस तरह दिखता है स्वीकार करता है:

[SessionTimeout] 
    public ActionResult UnitDetails(QuoteViewModel viewModel) 

QuoteViewModel और enum:

public class QuoteViewModel : IQuoteViewModel 
{ 
    public QuoteViewModelProducts Products { get; set; } 

    public bool HasDiscount { get; set; } 

    public string Product { get; set; } 

    public DetailButtonType Button { get; set; } 
} 

public enum DetailButtonType 
{ 
    Buy, 
    Callback, 
    Email 
} 

क्या मैं सबसे प्यार भले ही आप enum पैरामीटर और मान लोअरकेस के रूप में यह अपरकेस संपत्ति और मूल्य है, जो मेरी मुस्कराहट दरियादिली से बनाता है के लिए सही ढंग से नक्शे पार जाते हैं।

enter image description here

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

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