Привет, ребята, мне трудно отображать данные, которые вызываются в ajax, в представление. Я новичок в ajax. Когда я ищу идентификатор, я хочу автоматически заполнять другие поля.
Спасибо за ответ
Ниже приведена рабочая демонстрация, вы можете обратиться к ней.
Автозаполненная модель:
public class AutoFilledModel
{
[Key]
public string ProjectId { get; set; }
public string Region { get; set; }
}
Автозаполненный контроллер:
public class AutoFilledController : Controller
{
public IActionResult Index()
{
List<SelectListItem> projectidlist = new()
{
new SelectListItem { Value = "178290", Text = "178290" },
new SelectListItem { Value = "192834", Text = "192834" },
new SelectListItem { Value = "194364", Text = "194364" }
};//you can use your way to pass dropdownlist
//assigning SelectListItem to view Bag
ViewBag.projectidlist = projectidlist;
return View();
}
[HttpPost]
public IActionResult GetDropDownList(string id)
{
var autoFilledModels= new List<AutoFilledModel>()
{
new AutoFilledModel() {ProjectId = "178290",Region = "Nordic"},
new AutoFilledModel() {ProjectId = "192834",Region = "Luzon"},
new AutoFilledModel() {ProjectId = "194364",Region = "Luzon45"}
};
// you can get data from database too
var result = autoFilledModels.FirstOrDefault(m => m.ProjectId == id);
return Json(result);
}
}
Представление индекса:
@model AutoFilledModel
<div class = "form-group">
<label asp-for = "ProjectId" class = "control-label"></label>
<select asp-for = "ProjectId" class = "form-control" asp-items = "ViewBag.projectidlist"></select>
</div>
<div class = "form-group">
<label asp-for = "Region" class = "control-label"></label>
<input asp-for = "Region" class = "form-control" />
<span asp-validation-for = "Region" class = "text-danger"></span>
</div>
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
<script type = "text/jscript">
$(function() {
$("#ProjectId").change(function() {
var selectedid = $('option:selected').val();
if (selectedid > 0) {
$.ajax({
url: "/AutoFilled/GetDropDownList",
data: {
id: selectedid
},
type: "Post",
dataType: "Json",
success: function(result) {
document.getElementById('Region').value = result.region;
},
error: function() {
}
});
}
});
});
</script>
результат:
Большое спасибо, и я сожалею, что моя ошибка в asp.net mvc.. не в ядре asp.net
@RhodneyNoquiao Какую версию asp.net вы использовали?
MVC 5 .. я действительно ценю ваши усилия .. и это та же логика с возможностью поиска и раскрывающимся списком?
@RhodneyNoquiao да, можешь попробовать. И используйте свой собственный раскрывающийся список.
Не могли бы вы поделиться кодом модели? Каково отношение к поиску по идентификатору и другим полям, которые вы хотите заполнять автоматически?