My table in db have fields : Id
,Organisation
,Info
.
I want make dropdowm list like that:
controller
ViewBag.category = new SelectList(db.CategoryMasters.ToList(), "CategoryId", "CategoryName");
view
<div class="form-group">
@Html.LabelFor(model => model.CategoryId, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
<div hidden>@Html.EditorFor(model => model.CategoryId, new { htmlAttributes = new { @class = "form-control", id = "categoryid" } })</div>
@Html.DropDownList("select", ViewBag.category as SelectList, new { @id = "category" })
@Html.ValidationMessageFor(model => model.CategoryId, "", new { @class = "text-danger" })
</div>
</div>
JS
<script type="text/javascript">
$(document).ready(function () {
$("#category").change(function () {
var value = $(this).val();
alert(+value)
$("#categoryid").val(value);
});
});
</script>
@model CURDInMVC.Models.StudentModel
@Html.DropDownListFor(model => model.States,
new SelectList(ViewBag.States, "StateID", "StateName"))
You would need to create a SelectList in controller action using one of the constructors available and in view just pass it DropDownList method as parameter.
In Controller do this:
ViewBag.Organisations = new SelectList(db.Organisations.ToList(),"Id","Organisation");
in SelectList
we need to specify which property to use as value
and which to use as text
in the option
tag which we are specifying in last two parameters.
and then in View you would need to use it this way:
@Html.DropDownList("Organization",ViewBag.Organisations as SelectList)
Here first parameter would be used as name of select
element and second one will be used to populate the option
elements in the select
Following is the list of overloads available for Html.DropDownList
:
https://msdn.microsoft.com/en-us/library/system.web.webpages.html.htmlhelper.dropdownlist%28v=vs.111%29.aspx?f=255&MSPPError=-2147217396
I recommend you to define a ViewModel for your page with a OrganisationId
property. Thus this value will be filled when selecting an entry of the organisations dropdown list.
@model BCO.Models.SelectOrganisationViewModel
@{
ViewBag.Title = "OrganisationInfo";
}
<div>
@Html.DropDownListFor(o => o.OrganisationId,
new SelectList(ViewBag.Organisations, "Id", "Name"))
</div>
The SelectList itself expects
as parameters.
You can use selectlist from viewbag as follows
@Html.DropDownListFor(m => m.Name, ViewBag.GetData as SelectList, new { @class = "form-control" })
here ViewBag.GetData is populated from the controller, the controller code should be like
ViewBag.GetData = new SelectList(repository.GetOrganisation(), "ID", "OraganizationName");