Выпадающий список не показывают, сведения в частичный вид в ASP.NET в MVC 5 на 2017
я новичок в этом деле. asp.net и пытаясь создать форму информации о клиенте ,теперь в custController я успешно создаю список стран и в качестве параметра ContryID я хочу создать public actionResult Getstate, но это не должно работать
Что я уже пробовал:
в custController
public List<Country> GetCountries() { List<Country> countries = dc.Countries.ToList(); return countries; } public ActionResult GetState(int CountryID) { List<State_list> states = dc.State_list.Where(x => x.CountryID == CountryID).ToList(); ViewBag.stList = new SelectList(states, "StatelistID", "STATE", "CountryID"); return PartialView("DisplayState"); } [HttpGet] public ActionResult Create() { ViewBag.ContList = new SelectList(GetCountries(), "CountryID", "CountryName"); return View(); } }
В
PartialView("DisplayState")
@model ChaBuss.Models.State_list <option value="">-- Select States --</option> @if (ViewBag.stList != null) { foreach (var item in ViewBag.stList) { <option value="@item.value">@item.text</option> } }
в режиме HTML
@model ChaBuss.Models.Customer @{ ViewBag.Title = "Create"; } <h4 style="font:300;color:#0026ff">Create New Customer </h4> <html> <head> </head> <body> <form actions="#"> <div class="form-horizontal"> <hr /> @Html.ValidationSummary(true, "", new { @class = "text-danger" }) <div class="form-group"> <label class="control-label">Customer name </label> @* @Html.LabelFor(model => model.Customer_Name, htmlAttributes: new { @class = "control-label col-md-2" })*@ <div colspan="3"> @Html.EditorFor(model => model.Customer_Name, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.Customer_Name, "", new { @class = "text-danger" }) </div> </div> <div class="form-group"> <label class="control-label">Customer Address </label> <div colspan="3"> @Html.TextAreaFor(model => model.CustomerAddress, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.CustomerAddress, "", new { @class = "text-danger" }) </div> </div> <div class="dtr-details"> <table class="table table-responsive table-bordered"> <tr style="background-color:palegoldenrod"> <td>Contry </td> <td>state </td> <td>City</td> <td>Pin Code</td> <td> </td> </tr> <tr class="mycontainer" id="mainrow"> <td> <div> @Html.DropDownListFor(m => m.CountryID, ViewBag.ContList as SelectList, "-- Select Contry --", new { @class = "form-control" }) @Html.ValidationMessageFor(model => model.Contry, "", new { @class = "text-danger" }) </div> </td> <td> <div> @Html.DropDownListFor(m => m.StatelistID, new SelectList(" ViewBag.stList"), "-- Select Contry --", new { @class = "form-control" }) @Html.ValidationMessageFor(model => model.StatelistID, "", new { @class = "text-danger" }) </div> </td> </tr> </table> </div> </div> </form> </body> </html> @section Scripts{ <script src="~/Scripts/jquery-1.10.2.min.js"></script> <script > $(document).ready(function () { $("#CountryID").change(function () { var contId = $(this).val(); debugger $.ajax({ type: "post", url: "/Cust/GetState?CountryID=" + contId, contentType: "html", success: function (response) { debugger $("#StatelistID").empty(); $("#StatelistID").append(response); } }) }) }) </script> }
F-ES Sitecore
"Не работает" не дает никому достаточно информации, чтобы помочь решить проблему. Используйте отладчик и сетевые инструменты, чтобы увидеть, вызывается ли ваше действие. Одна из возможных проблем заключается в том, что Ваш url-адрес - "/Cust/GetState", который будет работать только в том случае, если ваш сайт находится в корне, чего мы не знаем. Используйте Url.Action для построения параметра url-адреса, чтобы убедиться, что он действителен, а не жестко кодировать его.
http://www.rubencanton.com/blog/2013/04/requesting-to-c-mvc-net-using-jquery-ajax.html
Проблема может быть и во многих других вещах, вы не можете просто сбросить груз кода и ожидать, что другие люди решат проблемы, научатся использовать доступные инструменты отладки, чтобы по крайней мере лучше понять, как далеко ваш код заходит, прежде чем он перестанет делать то, что вы хотите.
yogesh vaidya
спасибо сэр,
я попробовал с шагом debug , сначала он ждал на @section Scripts ,а затем запустил js scripts 3.3.1 там сначала он показывает url - Cust/ GetState и Contryid, а затем он пошел к контроллеру в методе Acction GetState, а затем он перешел на страницу PartialView и через ошибку Microsoft.Используется CSharp.RuntimeBinder.RuntimeBinderException: "System.Web.Mvc.SelectListItem' не содержит определения для 'value' ,
на странице PartialView когда я открываю цикл foreach когда я ставлю мышь на элемент это show i singel и first record ,