2011-06-07 9 views
7

के साथ एक चयन सूची बना सकता हूं मैं एमवीसी 3 के लिए नया हूं। मैं एक चुनिंदा सूची/ड्रॉपडाउन बनाना चाहता हूं जो मुझे 2-3 चीजों के बीच चयन करने की अनुमति देगा। मैं केवल एक सूची से एक का चयन करने में सक्षम होना चाहता हूँ। एक सहायक के साथ ऐसा करने का कोई आसान तरीका है।क्या मैं एक एमवीसी 3 सहायक

मैरी जीन

यहाँ मेरी विचार है।

The helper will select from choices: 

1 answer 
2 answers 
3 answers 

और task_type चर

उत्तर

14

में परिणाम की दुकान आप DropDownListFor सहायक इस्तेमाल कर सकते हैं।

public class AnswersViewModel 
{ 
    public string SelectedAnswer { get; set; } 

    public IEnumerable<SelectListItem> Answers 
    { 
     get 
     { 
      return new[] 
      { 
       new SelectListItem { Value = "1", Text = "1 answer" }, 
       new SelectListItem { Value = "2", Text = "2 answers" }, 
       new SelectListItem { Value = "3", Text = "3 answers" }, 
      }; 
     } 
    } 
} 

एक नियंत्रक तो: मैं एक दृश्य के मॉडल को परिभाषित करते हुए शुरू होगा

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     var model = new AnswersViewModel(); 
     return View(model); 
    } 

    [HttpPost] 
    public ActionResult Index(AnswersViewModel model) 
    { 
     return View(model); 
    } 
} 

और अंत में एक जोरदार टाइप किया दृश्य:

@model AnswersViewModel 
@using (Html.BeginForm()) 
{ 
    @Html.DropDownListFor(
     x => x.SelectedAnswer, 
     new SelectList(Model.Answers, "Value", "Text") 
    ) 
    <input type="submit" value="OK" /> 
} 

अब जब उपयोगकर्ता प्रपत्र सबमिट सूचकांक पोस्ट कार्रवाई लागू की जाएगी और SelectedAnswer दृश्य मॉडल की संपत्ति ड्रॉपडाउन से उपयोगकर्ता चयन के साथ स्वचालित रूप से पॉप्युलेट हो जाएगी।

+0

वाह डारिन, आपका उत्तर वास्तव में अच्छा है। मैं आपसे बहुत कुछ सीख सकता हूँ। बहुत बहुत धन्यवाद !! – MaryJean

+0

एक प्रश्न। यह कहता है कि SelectListItem नहीं मिला। क्या मुझे उस कक्षा को परिभाषित करने की ज़रूरत है? – MaryJean

+0

@MaryJean, नहीं, आपको नामस्थान आयात करने की आवश्यकता है जहां इस वर्ग को परिभाषित किया गया है: 'System.Web.Mvc' का उपयोग करना। –

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