2012-06-18 7 views
5

मेरे पास एक संपादक टेम्पलेट में एक HTML.DropDownListFor है जो डॉट को एक चयनित मान सेट करता है। अगर मैं आंशिक दृश्य के साथ संपादक टेम्पलेट को प्रतिस्थापित करता हूं (आंशिक दृश्य में HTML टेम्पलेट में HTML का प्रतिलिपि पेस्ट) यह काम करता है।एचटीएमएल.ड्रॉपडाउनलिस्ट संपादक टेम्पलेट में चयनित मूल्य सेट नहीं कर रहा है

नमूना कोड

मॉडल:

public class MainItemViewModel 
{ 
    public int MainItemId { get; set; } 
    public ItemViewModel ItemViewModel { get; set; } 
} 

public class ItemViewModel 
{ 
    public int ItemId { get; set; } 
    public string Text { get; set; } 
    public IEnumerable<SelectListItem> ItemSelectList { get; set; } 
} 

नियंत्रक:

public class DropDownController : Controller 
{ 
    // 
    // GET: /DropDown/ 

    public ActionResult Index() 
    { 
     var mainItemViewmodel = new MainItemViewModel(); 
     mainItemViewmodel.MainItemId = 2; 
     mainItemViewmodel.ItemViewModel = new ItemViewModel(); 
     mainItemViewmodel.ItemViewModel.ItemId = 2; 
     mainItemViewmodel.ItemViewModel.Text = "bla5"; 
     List<SelectListItem> someItems = new List<SelectListItem>(){new SelectListItem(){Value = "1",Text = "Test1"},new SelectListItem(){Value = "2",Text = "Test2"}}; 
     mainItemViewmodel.ItemViewModel.ItemSelectList = someItems; 
     return View(mainItemViewmodel); 
    } 

    [HttpPost] 
    public ActionResult Index(MainItemViewModel mainItemViewModel) 
    { 
     return RedirectToAction("Index"); 
    } 

} 

लटकती \ Index.chtml

@model MainItemViewModel 


@using (Html.BeginForm()) 
{ 
<br/> 
@Html.TextBoxFor(model => model.MainItemId) 
<br/> 
@Html.EditorFor(model => model.ItemViewModel) 

<input name="submit" type="submit" value="submit"/> 
} 

लटकती \ EditorTemplates \ ItemV iewModel.chtml

@model ItemViewModel 
    @{ 
    @Html.DropDownListFor(model => model.ItemId, Model.ItemSelectList, "Select Item"); 
    <br/> 

    @Html.TextBoxFor(model => model.Text); 
    } 

DropDownListFor (मॉडल => model.ItemId, Model.ItemSelectList, "चुनें आइटम"); का चयन नहीं करता 2.I सोचा था कि यह वास्तव में माना जाता है स्वचालित रूप से चयन आप

मैं अपने सभी dropdownlist के लिए एक और भीतर को छोड़कर एक ही बात कर रहे हैं के लिए एक और दृश्य मॉडल होने और यह ठीक काम किया है।

वहाँ संपादक टेम्पलेट्स और dropdownlist के साथ एक समस्या है, मैं इस समस्या का सबसे जवाब पर ध्यान दिया है और मैं किसी भी निर्णायक जवाब यह है कि काम करता है मैं इन समाधानों पर ध्यान दिया है नहीं दिख रहा है

Problem binding selected value to DropDownListFor inside Editor Template

DropDownListFor - does not select “Selected” value

उत्तर

0

मैं तुम्हें अपने ItemViewModel

तो बस सुनिश्चित करने के में एक संपत्ति ItemId नाम दिया है लगता है सेट यह नियंत्रक में मूल्य है देखें ViewModel भेजने से पहले:

public ActionResult Edit() 
{ 
    var viewModel = new MainViewModel 
           { 
            ItemViewModel = new ItemViewModel{ ItemId = 7 } 
           }; 
    return View(viewModel); 
} 

आप अधिक विकल्प my answer here

+0

पर एक नज़र मैं बिल्कुल कि भेजने से पहले Itemid की स्थापना करके कर रहा हूँ ले चाहते हैं ViewModel.अगर मैं सटीक उसी मॉडल के साथ आंशिक दृश्य का उपयोग करता हूं तो यह काम करता है। मेरा सवाल यह होगा कि यह संपादक के बजाय आंशिक दृश्य (समान मॉडल) के साथ क्यों काम करता है। अभी मैं आंशिक दृश्य – kwiri

+0

का उपयोग कर रहा हूं हाँ, मुझे धन्यवाद है लेकिन यह वही नहीं है जो मैं वास्तव में खोज रहा था। मैंने वास्तविक एमवीसी स्रोत (आरटीएम 3) के साथ कुछ डिबगिंग की है और मैंने देखा है कि वे शायद कुछ सही नहीं है। यह डिफ़ॉल्ट नाम प्राप्त करने के लिए प्रॉपर्टी नाम का उपयोग करने के तरीके के कारण टूट जाता है। यही कारण है कि मेरी ड्रॉपडाउनसूची संपादक में के लिए आंशिक दृश्य में टेम्पलेट सही मान का चयन नहीं करता है, यह काम करता है। एमवीसी स्रोत का उपयोग करके एक सरल परीक्षण ऐप बनाया और यह ड्रॉपडाउन ब्रेक साबित कर दिया है। ट्रांसेंज मैंने नोटिस किया कि टेक्स्टबॉक्स के लिए संपत्ति मूल्यों का उपयोग करने की एक अलग विधि का उपयोग किया गया था। – kwiri

+0

विचार यह है कि मैं चयन करने के लिए अतिरिक्त कोड जोड़ने के बिना सामान्य तरीके से ड्रॉपडाउनलिस्ट का उपयोग करना चाहता हूं।मैं इस तरह की ड्रॉपडाउनलिस्ट का उपयोग कर रहा हूं और यह ठीक काम करता है, यह केवल यह विशेष दृश्य है जहां मुझे एडिटर टेम्पलेट (ड्रॉप डाउनडाउन) में फेंकने की ज़रूरत है, जैसा कि मैंने – kwiri

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