Member 12637032 Ответов: 2

Сэр, я получаю ошибки в dropdownbox пожалуйста, проверьте его в ASP.NET с помощью MVC4


Это контролер

public class HomeController : Controller
    {
        dropdownEntities db = new dropdownEntities();
        public ActionResult Index()
        {
            List<SelectListItem> StateName = new List<SelectListItem>();
            Student stumodel = new Student();
            List<StateDetail> states = db.StateDetails.ToList();
            states.ForEach(x =>
            {
                StateName.Add(new SelectListItem { Text = x.StateName, Value = x.StateId.ToString() });
            });
            stumodel.StateName = StateName;
            return View(stumodel);
        }
        [HttpPost]
        public ActionResult GetCity(string StatId)
        {
            int StateId;
            List<SelectListItem> CityName = new List<SelectListItem>();
            if (!string.IsNullOrEmpty(StatId))
            {
                StateId = Convert.ToInt32(StatId);
                List<CityDetail> CityNames = db.CityDetails.Where(x => x.StateId == StateId).ToList();
                CityNames.ForEach(x =>
                {
                    CityName.Add(new SelectListItem { Text = x.CityName, Value = x.CityId.ToString() });
                });
            }
            return Json(CityName, JsonRequestBehavior.AllowGet);
        }

    }
}




Это мой индекс & gt;view

@model retrive2.Models.Student
@{
    ViewBag.Title = "Index";
}

<link href="~/Content/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<script src="~/Scripts/jquery-2.1.1.min.js"></script>
<h2 class="text-center">DropDownList</h2>
<div class="container" style="width:50%;margin:0 auto;">
    <div class="table-responsive">
        <table class="table table-bordered table-striped">
            <thead>
                <tr class="success">
                    <th class="text-center">State</th>
                    <th class="text-center">City</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>@Html.DropDownListFor(x => x.StateName, Model.StateName, "--Select--", new { @class = "form-control", @id = "ddlState" })</td>
                    <td>@Html.DropDownListFor(x => x.CityName, new List<SelectListItem>() , "--Select--", new { @class = "form-control", @id = "ddlCity" }) </td>
                </tr>
            </tbody>
        </table>
    </div>
</div>
<script type="text/javascript">
    $(document).ready(function () {
        $('#ddlState').change(function () {
            $.ajax({
                type: "post",
                url: "/Home/GetCity",
                data: { StateId: $('#ddlState').val() },
                datatype: "json",
                traditional: true,
                success: function (data) {
                    var City = "<select id='ddlCity'>";
                    City = City + '<option value="">--Select--</option>';
                    for (var i = 0; i < data.length; i++) {
                        City = City + '<option value=' + data[i].Value + '>' + data[i].Text + '</option>';
                    }
                    City = City + '</select>';
                    $('#City').html(City);
                }
            });
        });
    });
</script>


Что я уже пробовал:

Сэр в этом контроллере я извлекаю данные из базы данных и отображаю их на экране но на веб сайте отображается только выпадающий список состояния а не город пожалуйста проверьте я надеюсь что некоторые дают asnwer

Member 12637032

Если какой-то Слав вышеописанной проблемы

2 Ответов

Рейтинг:
1

Karthik_Mahalingam

Я отладил ваш код, вычислил две ошибки

Первый один из них, на который указал Тадит Даш, относится к решению 1
Второй,
Изменить это

$('#City').html(City);
к
$('#ddlCity').html(City);

нет никакого контроля с идентификатором "город". согласно вашего кода, Вы не над писать HTML-код существующих ddlCity элемент.


Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Потрясающий. Ура!!! 5+

Karthik_Mahalingam

:) Спасибо

Рейтинг:
0

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Проанализируйте консоль браузера и посмотрите, есть ли какие-либо ошибки в списке или нет.

На данный момент я вижу одну проблему. На язык JavaScript, параметр равен StateId, но по коду это так StatId- Они должны совпадать.

data: { StateId: $('#ddlState').val() },

public ActionResult GetCity(string StatId)


Karthik_Mahalingam

5. Хороший улов

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Спасибо братан :)