ナイト ロイヤル Ответов: 1

Не удается вставить значение из каскадного выпадающего списка в базу данных


Эй там я новичок в этом деле

я уже создаю каскадный выпадающий список по сценарию Джейсона

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

<!--Country-->>
        <div class="form-group">
            @Html.LabelFor(model => model.Country, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.DropDownList("countryId", (SelectList)ViewBag.SelectCountry, "select please", new { @class = "form-control" })
                @Html.ValidationMessageFor(model => model.Country, "", new { @class = "text-danger" })
            </div>
        </div>
 
        <!--States-->>
        <div class="form-group">
            @Html.LabelFor(model => model.States, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                <select id="statelistdrop" class="form-control" name=""></select>
                @Html.ValidationMessageFor(model => model.States, "", new { @class = "text-danger" })
            </div>
        </div>
 
        <!--City-->>
        <div class="form-group">
            @Html.LabelFor(model => model.City, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                <select id="citieslistdrop" class="form-control"></select>
                @Html.ValidationMessageFor(model => model.City, "", new { @class = "text-danger" })
            </div>
        </div>


а вот мой скрипт для каскадного выпадающего списка

<script>
    $(function () {
        $("#countryId").change(function () {
            $.get("/Country/GetStatesById", { ID: $("#countryId").val()}, function (data) {
                $("#statelistdrop").empty();
                $.each(data, function (index,row) {
                    $("#statelistdrop").append(" <option value='" + row.state_id + "'>" + row.name+ "</option>")
                });
            })
        });
    });
 
</script>
 
<script>
    $(function () {
        $("#statelistdrop").change(function () {
            $.get("/Country/GetCitiesById", { ID: $("#statelistdrop").val() }, function (data) {
                $("#citieslistdrop").empty();
                $.each(data, function (index,row) {
                    $("#citieslistdrop").append(" <option value='" + row.state_id + "'>" + row.name + "</option>")
                });
            })
        });
    });
 
</script>


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

я пытаюсь изменить код бритвы, но ничего не получается

Suvendu Shekhar Giri

Где находится код для ВСТАВЛЯТЬ?

ナイト ロイヤル

[HttpGet]
public ActionResult Create()
{
List< category> catlist = db. Categories.Список();
SelectList sl = новый SelectList(catlist.AsEnumerable (), "id", " name");
Видовая сумка.SelectCategories = сл;

List< country> countrylist = db. CountryTb.Список();
Списка С2 = новый списка(countrylist.AsEnumerable (), "id", " name");
Видовая сумка.SelectCountry = С2;

возвращение смотреть();

}

[HttpPost]
public ActionResult Create(Item i)
{
дБ.Предметы.Добавить (i);
дБ.Метод SaveChanges();
return RedirectToAction ("индекс");

}

1 Ответов

Рейтинг:
1

Richard Deeming

Цитата:

&ЛТ;выберите ID="statelistdrop" класс="форма контроля" наименование=""&ГТ;&ЛТ;/выбрать&ГТ;
&ЛТ;выберите ID="citieslistdrop" класс="форма контроля"&ГТ;&ЛТ;/выбрать&ГТ;

Чтобы отправить выбранное значение обратно на сервер при отправке формы, оба этих элемента управления нуждаются в name.

Для того чтобы связыватель модели сопоставил опубликованные данные со свойствами вашей модели, это имя должно совпадать с именем соответствующего свойства вашей модели.

Предполагая, что свойства названы разумно:
<select id="statelistdrop" class="form-control" name="stateId"></select>

<select id="citieslistdrop" class="form-control" name="cityId"></select>