के बारे में इन प्रश्नों में से एक प्रश्न "चयनित" मान का चयन नहीं कर रहा है।DropDownListFor - "चयनित" मान का चयन नहीं करता
मॉडल::
public class CreateEditAccountModel
{
[Required]
[Display(Name = "Permission")]
public int PermissionId { get; set; }
public IEnumerable<SelectListItem> Permissions { get; set; }
}
नियंत्रक:
[HttpGet]
[Authorize]
public ActionResult EditAccount(int id)
{
CreateEditAccountModel model = new CreateEditAccountModel();
model.Permissions = PermissionsAll();
return View("CreateEditAccount", model);
}
इस बात अगर मैं वापसी लाइन पर एक को तोड़ने बिंदु डाल पर, model.Permissions
उचित IEnumerable<SelectListItem>
वस्तु शामिल यहाँ कोड है कई वस्तुओं और केवल एक के साथ, जिसमें Selected = true
है।
दृश्य:
@using (Html.BeginForm())
{
@Html.DropDownListFor(m => m.PermissionId, Model.Permissions)
}
रेंडर:
<select id="PermissionId" name="PermissionId">
<option value="">-- Select --</option>
<option value="1">Permission one</option>
<option value="2">Permission two</option>
</select>
किसी कारण से विकल्प और पहले विकल्प में से किसी पर कोई चयनित विशेषता का चयन किया जाता है।
किसी भी मदद की सराहना की जाती है।
अद्यतन
ऐसा प्रतीत होता है कि यह इस article के साथ कुछ है। इस आलेख के समाधान को सारांशित करने के लिए, मुझे यह सुनिश्चित करना होगा कि संपत्ति का नाम (@html.DropDownList
का पहला तर्क) मॉडल के किसी भी मौजूदा गुण से मेल नहीं खाता है। क्या कोई यह समझा सकता है कि यह मामला क्यों है?
यह सही ढंग से ड्रॉप डाउन renders जब मैं इस तरह दृश्य कुछ में लिखें:
@Html.DropDownList("PermissionIdNotMatching", Model.Permissions)
हालांकि, यह यह करने के लिए किसी भी तार्किक मतलब नहीं है के बाद से मैं वास्तव में बांधने की मशीन मिलान करने में सक्षम होना चाहता हूँ मॉडल संपत्ति के लिए चयन तत्व का नाम। अन्यथा मुझे मैन्युअल रूप से इस तरह के मूल्य को पकड़ना होगा: Request.Form["PermissionIdNotMatching"];
किसी के पास कोई विचार है?
समाधान
देखें जवाब और इसे करने के लिए पहली टिप्पणी को स्वीकार कर लिया।
PermissionId का मान SelectListItem.Value के बराबर होना चाहिए जिसके लिए चयनित = सत्य। मॉडल का प्रयास करें। PermissionId = Convert.ToInt32 (lst.First (t => t.Selected)। वैल्यू); मुझे आपके द्वारा की गई एक ही समस्या का सामना करना पड़ा, आश्चर्यजनक रूप से संपादन करते समय मूल्य का चयन किया जा रहा था, वहां से मुझे लगा कि अनुमति आईडी में वही मान होना चाहिए जो चयनित SelectListItem के मान के लिए है। मेरे लिए काम किया – Brij