Pro đang tìm kiếm từ khóa SelectListItem selected value not working được Update vào lúc : 2022-03-12 11:21:20 . Với phương châm chia sẻ Mẹo Hướng dẫn trong nội dung bài viết một cách Chi Tiết Mới Nhất. Nếu sau khi tìm hiểu thêm nội dung bài viết vẫn ko hiểu thì hoàn toàn có thể lại phản hồi ở cuối bài để Ad lý giải và hướng dẫn lại nha.
How can I set the selected value of a Html.DropDownListFor? I’ve been having a look trực tuyến and have seen that it can be achieved by using the fourth parameter so like the below:
Nội dung chính
@Html.DropDownListFor(m => m, new SelectList(Model, “Code”, “Name”, 0), “Please select a country”)
My select list then display like this:
Please select a country
United Kingdom
United States
…
But for some reason United Kingdom remains selected but I want “Please select a country” to be selected.
Anyone know how I can achieve this?
I’ve updated my code as there was a slight change in functionality however still seem to be encountering this problem. This is what is in my view:
@Html.DropDownListFor(n => n.OrderTemplates, new SelectList(Model.OrderTemplates, “OrderTemplateId”, “OrderTemplateName”, 1), “Please select an order template”)
1 is the Id of the option that I want selected, I have also tried with the text of the option but that also does not work.
Any ideas?
This question is tagged with
asp-mvc
razor
~ Asked on 2013-10-20 10:54:42
Your code has some conceptual issues:
First,
@Html.DropDownListFor(n => n.OrderTemplates, new SelectList(Model.OrderTemplates, “OrderTemplateId”, “OrderTemplateName”, 1), “Please select an order template”)
When using DropDownListFor, the first parameter is the property where your selected value is stored once you submit the form. So, in your case, you should have a SelectedOrderId as part of your model or something like that, in order to use it in this way:
@Html.DropDownListFor(n => n.SelectedOrderId, new SelectList(Model.OrderTemplates, “OrderTemplateId”, “OrderTemplateName”, 1), “Please select an order template”)
Second,
Aside from using ViewBag, that is not wrong but there are better ways (put that information in the ViewModel instead), there is a “little bug” (or an unspected behavior) when your ViewBag property, where you are holding the SelectList, is the same name of the property where you put the selected value. To avoid this, just use another name when naming the property holding the list of items.
Some code I would use if I were you to avoid this issues and write better MVC code:
Viewmodel:
public class MyViewModel
public int SelectedOrderId get; set;
public SelectList OrderTemplates get; set;
// Other properties you need in your view
Controller:
public ActionResult MyAction()
var model = new MyViewModel();
model.OrderTemplates = new SelectList(db.OrderTemplates, “OrderTemplateId”, “OrderTemplateName”, 1);
//Other initialization code
return View(model);
In your View:
@Html.DropDownListFor(n => n.SelectedOrderId, Model.OrderTemplates, “Please select an order template”)
~ Answered on 2013-11-15 19:14:29
For me was not working so worked this way:
Controller:
int selectedId = 1;
ViewBag.ItemsSelect = new SelectList(db.Items, “ItemId”, “ItemName”,selectedId);
View:
@Html.DropDownListFor(m => m.ItemId,(SelectList)ViewBag.ItemsSelect)
JQuery:
$(“document”).ready(function ()
$(‘#ItemId’).val(‘@Model.ItemId’);
);
~ Answered on 2014-12-12 05:19:24
When you pass an object like this:
new SelectList(Model, “Code”, “Name”, 0)
you are saying: the Source (Model) and Key (“Code”) the Text (“Name”) and the selected value 0. You probably do not have a 0 value in your source for Code property, so the HTML Helper will select the first element to pass the real selectedValue to this control.
~ Answered on 2013-10-20 12:48:49
Make sure that you have trim the selected value before you assigning.
//Model
public class SelectType
public string Text get; set;
public string Value get; set;
//Controller
var types = new List();
types.Add(new SelectType() Value = 0, Text = “Select a Type” );
types.Add(new SelectType() Value = 1, Text = “Family Trust” );
types.Add(new SelectType() Value = 2, Text = “Unit Trust”);
ViewBag.PartialTypes = types;
//View
@Html.DropDownListFor(m => m.PartialType, new SelectList(ViewBag.PartialTypes, “Value”, “Text”), new id = “Type” )
~ Answered on 2013-11-15 18:43:44
If you know what will be in the view, you can also set the default value from Controller as well rather then set up it into the view/cshtml file.
No need to set default value from HTML side.
In the Controller file.
commission.TypeofCommission = 1;
return View(commission);
In the .cshtml file.
@Html.DropDownListFor(row => row.TypeofCommission, new SelectList(Model.commissionTypeModelList, “type”, “typeName”), “–Select–“)
~ Answered on 2015-10-15 06:31:54
You should forget the class
SelectList
Use this in your Controller:
var customerTypes = new[]
new SelectListItem()Value = “all”, Text= “All”,
new SelectListItem()Value = “business”, Text= “Business”,
new SelectListItem()Value = “private”, Text= “Private”,
;
Select the value:
var selectedCustomerType = customerTypes.FirstOrDefault(d => d.Value == “private”);
if (selectedCustomerType != null)
selectedCustomerType.Selected = true;
Add the list to the ViewData:
ViewBag.CustomerTypes = customerTypes;
Use this in your View:
@Html.DropDownList(“SectionType”, (SelectListItem[])ViewBag.CustomerTypes)
–
More information : ://.asp/mvc/overview/older-versions/working-with-the-dropdownlist-box-and-jquery/using-the-dropdownlist-helper-with-aspnet-mvc
~ Answered on 2014-11-27 16:23:48
Linq to Dropdown with empty item, selected item (works 100%)
(Strongly Typed,Chances for error minimum) Any model changes will be reflected in the binding
Controller
public ActionResult ManageSurveyGroup()
tbl_Survey sur = new tbl_Survey();
sur.Survey_Est = “3”;
return View(sur);
View
@
//Step One : Getting all the list
var CompEstdList = (from ComType in db.tbl_CompEstdt orderby ComType.Comp_EstdYr select ComType).ToList();
//Step Two : Adding a no Value item **
CompEstdList.Insert(0, new eDurar.Models.tbl_CompEstdt Comp_Estdid = 0, Comp_EstdYr = “–Select Company Type–” );
//Step Three : Setting selected Value if value is present
var selListEstd= CompEstdList.Select(s => new SelectListItem Text = s.Comp_EstdYr, Value = s.Comp_Estdid.ToString() );
@Html.DropDownListFor(model => model.Survey_Est, selListEstd)
@Html.ValidationMessageFor(model => model.Survey_Est)
This method for binding data also possible
var selList = CompTypeList.Select(s => new SelectListItem Text = s.CompTyp_Name, Value = s.CompTyp_Id.ToString(), Selected = s.CompTyp_Id == 3 ? true : false );
~ Answered on 2022-05-10 09:12:21
I know this is not really an answer to the question, but I was looking for a way to initialize the DropDownList from a list on the fly in the view when I kept stumbling upon this post.
My mistake was that I tried to create a SelectList from dictionary like this:
//wrong!
@Html.DropDownListFor(m => m.Locality, new SelectList(new Dictionary() Model.Locality, Model.Locality_text , Model.Locality, …
I then went digging in the official msdn doc, and found that DropDownListFor doesn’t necessarily require a SelectList, but rather an IEnumerable:
//right
@Html.DropDownListFor(m => m.Locality, new List() new SelectListItem() Value = Model.Locality, Text = Model.Locality_text, Selected = true , Model.Locality, new @class = “form-control select2ddl” )
In my case I can probably also omit the Model.Locality as selected item, since its a) the only item and b) it already says it in the SelectListItem.Selected property.
Just in case you’re wondering, the datasource is an AJAX page, that gets dynamically loaded using the SelectWoo/Select2 control.
~ Answered on 2022-01-15 11:57:41
public byte UserType
public string SelectUserType
You need to get one and set different one. Selected value can not be the same item that you are about to set.
@Html.DropDownListFor(p. => p..SelectUserType, new SelectList(~~UserTypeNames, “Key”, “Value”,UserType))
I use Enum dictionary for my list, that’s why there is “key”, “value” pair.
~ Answered on 2022-01-16 12:59:57
I had a similar issue, I was using the ViewBag and Element name as same. (Typing mistake)
~ Answered on 2022-10-21 21:51:28
Add the Controller Section
ViewBag.Orders= new SelectList(db.Orders, “Id”, “business”, paramid);
Add the Html Section
@Html.DropDownList(“Orders”, null)
A simple method
~ Answered on 2015-06-22 12:54:33
For me general solution 🙂
@
var selectedCity = Model.Cities.Where(k => k.Id == Model.Addres.CityId).FirstOrDefault();
if (selectedCity != null)
@Html.DropDownListFor(model => model.Addres.CityId, new SelectList(Model.Cities, “Id”, “Name”, selectedCity.Id), new @class = “form-control” )
else
@Html.DropDownListFor(model => model.Cities, new SelectList(Model.Cities, “Id”, “Name”, “1”), new @class = “form-control” )
~ Answered on 2015-07-15 08:26:14
This is CSS issues. I don’t know why @Html.DropDownListFor in Bootstrap 4 doest work. Surely this is class design problem. Anyways the work arround is, if your Dropdown input box has CSS Padding: #px, # px; element then disable it. Hope this will work.
~ Answered on 2022-05-29 23:05:55
://.youtube/watch?v=oEVAb2t5Sxk
Bạn vừa Read nội dung bài viết Với Một số hướng dẫn một cách rõ ràng hơn về Clip SelectListItem selected value not working tiên tiến và phát triển nhất
You đang tìm một số trong những ShareLink Download SelectListItem selected value not working miễn phí.
Nếu sau khi đọc nội dung bài viết SelectListItem selected value not working vẫn chưa hiểu thì hoàn toàn có thể lại phản hồi ở cuối bài để Mình lý giải và hướng dẫn lại nha
#SelectListItem #selected #working
Tra Cứu Mã Số Thuế MST KHƯƠNG VĂN THUẤN Của Ai, Công Ty Doanh Nghiệp…
Các bạn cho mình hỏi với tự nhiên trong ĐT mình gần đây có Sim…
Thủ Thuật về Nhận định về nét trẻ trung trong môi trường tự nhiên vạn…
Thủ Thuật về dooshku là gì - Nghĩa của từ dooshku -Thủ Thuật Mới 2022…
Kinh Nghiệm Hướng dẫn Tìm 4 số hạng liên tục của một cấp số cộng…
Mẹo Hướng dẫn Em hãy cho biết thêm thêm nếu đèn huỳnh quang không còn…