/
Selector.cshtml
68 lines (59 loc) · 2 KB
/
Selector.cshtml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
@model HistoryApiSample.Models.SelectorViewModel
@{
ViewBag.Title = "Selector";
}
<style>
.lbl {
display: inline-block;
width: 210px;
text-align: right;
}
</style>
<h2>Car select</h2>
@using (Html.BeginForm())
{
<div id="divMake">
@Html.LabelFor(m => m.SelectedMake, new { @class = "lbl" })
@Html.DropDownListFor(m => m.SelectedMake, Model.Makes, " -- please select a make -- ")
</div>
<div id="divModel" style="display: none">
@Html.LabelFor(m => m.SelectedModel, new { @class = "lbl" })
@Html.DropDownListFor(m => m.SelectedModel, Model.Models, " -- please select a model -- ")
</div>
<input type="submit" value="Continue" />
}
@section scripts
{
<script type="text/javascript">
$(function () {
$("#SelectedMake").change(makeChanged);
makeChanged();
});
function makeChanged() {
var selectedMake = $("#SelectedMake").val();
if (selectedMake === "") {
$('#divModel').hide();
} else {
$.ajax({
cache: true,
type: 'GET',
url: '@Url.Action("GetModelsByMake")',
data: { 'makeId': selectedMake },
success: function (data) {
var models = $("#SelectedModel");
models.empty();
models.append($("<option></option>").attr("value", "").text(" -- please select a model -- "));
$.each(data, function (key, val) {
models.append($("<option></option>").attr("value", val.Id).text(val.Text));
});
$('#divModel').show();
},
error: function (xhr, ajaxOptions, error) {
alert(error);
$('#divModel').hide();
}
});
}
}
</script>
}