Как обновить частичное представление в ASP.NET MVC на основе выбранного состояния
Всем Привет,
Я создал частичное представление и получаю данные о сотрудниках с изображением сотрудников при загрузке.
У меня есть выпадающий список состояний, поэтому я хочу, чтобы данные отображались на основе выбранного состояния.
Мне это срочно нужно, Пожалуйста, помогите мне
заранее спасибо
Что я уже пробовал:
Это частичный вид
@model OnlineApp.Models.DBEntities.EmployeeDetail <div class="row" id="@Model.EmpId" style="margin-bottom:25px; border:outset; background-color:antiquewhite"> <div @*class="image"*@ style="margin-bottom:20px"> <div class="col-md-6"> <img class="img-responsive" src="~/Images/@Model.ImagePath" height="450" width="600" /> </div> <div class="col-md-6"> <h3 style="color:navy">@Model.EmpName</h3> <h5>(@Model.Department)</h5> <h4>Contact No : @Model.Mobile1</h4> <div style="align-items:flex-start"> <h5>State : @Model.State</h5> <h5>City : @Model.City</h5> <h5>Address : @Model.Address1</h5> </div> <button type="button" id="@Model.EmpId" onclick="EditEmp(@Model.EmpId)" style="margin-bottom:5px" class="btn btn-primary">Edit Employee</button> </div> </div> </div>
индексированное представление
@model IEnumerable<OnlineApp.Models.DBEntities.EmployeeDetail> @{ ViewBag.Title = "Index"; Layout = "~/Views/Shared/_Layout.cshtml"; } @foreach (var item in Model) { @Html.Partial("_Employee", item); }
Вызов Ajax
$("#ddlState").change(function () { var id = $(this).val(); if (id > 1) { getCity(sid = { "sid": id }); cid = "0"; sid = id.toString(); dataObject = JSON.stringify({ "sid": sid, "cid": cid, }); GetEmp(); } }); function GetEmp() { $.ajax({ data: dataObject, url: '/Employee/Index', type: "POST", dataType: "json", contentType: 'application/json', success: function (result) { } }) }
Это метод контроллера
public ActionResult Index(string sid, string cid) { var result = bandRepo.GetEmployees(sid, cid); return View(result.ToList()); }
j snooze
Вы получаете ошибку или что-то еще? Я сам показываю частичный вид. Что-то вроде этого. Основываясь на изменении раскрывающегося списка действий, я задаю вопрос. Jquery в основном строит частичное представление и захватывает html, а затем вводит его в мою основную форму.
$(документ).готово(функция () {
$('#ddlActivityType').change(функция () {
/* Получить выбранное значение выпадающего списка */
var selectedID = $(this).val();
var questionUrl = $(this).data('qt') + '/';
/* Запрос задает частичный вид с помощью запроса GET. */
$.get(questionUrl + selectedID, функция (данные) {
$('#questions').html(данные);
$('#вопросов).fadeIn('быстрый');
});
});
Member 12611488
Я попробовал то же самое, что и вы, но не получил должного вывода, данные не обновляются, они показывают те же данные, что и загруженные в первый раз.
Также не получаю никаких ошибок.
<div id="PartialContainer"> @foreach (var emp in Model) { @Html.Partial("_Employee", emp); } </div>
функция GetEmp() {
отладчик;
$.Аякс({
данные: dataObject,
url: '/Employee/Index', тип: "POST", тип данных: "json",
contentType: 'application/json',
успех: функция (результат) {
$("#PartialContainer").html(результат);
}
})
}
F-ES Sitecore
Этот код помещает html в элемент с идентификатором "PartialContainer", но у вас нет такого элемента на Вашей странице. На странице, где находится ваш частичный вид, вам нужно будет поместить div с этим идентификатором вокруг него;
<div id="PartialContainer">
@HTML-код.Частично...
</div>
Кроме того, если вы получаете 500 ошибок, то это сбой действия вашего контроллера, который является другой проблемой. Вам нужно будет выполнить некоторую отладку, чтобы выяснить, в чем заключается ошибка.
Member 12611488
Это работает для меня, но проблема в том, что я не получаю изображение, если изображение будет отображаться, то это будет хорошо для меня.
Вызов AJAX
function GetEmp() { $.ajax({ data: dataObject, url: '/Employees/GetEmployees', type: "POST", dataType: "json", contentType: 'application/json', success: function (result) { var divison; for (var i in result) { divison = "<div class='row' style='margin-bottom:25px; border:outset; background-color:antiquewhite'><div class='image' style='margin-bottom:20px'><div class='col-md-6'> <img class='img-responsive' src='~/Images/" + result[i].ImagePath + "' height='450' width='600' /></div><div class='col-md-6'><h3 style='color:navy'>" + result[i].EmpName + "</h3><h4>Contact No : " + result[i].Mobile1 + "</h4><div style='align-items:flex-start'><h5>State : " + result[i].State + "</h5><h5>City : " + result[i].City + "</h5><h5>Address : " + result[i].Address1 + "</h5></div><button type='button' id=" + result[i].EmpId + " onclick='EditDetail(" + result[i].EmpId + ")' class='btn btn-primary'>Edit Detail</button></div></div></div>" $('#PartialContainer').append(divison); } } }) }
метод действия
[HttpPost] public ActionResult GetEmployees(string sid, string cid) { var result = empRepo.GetEmployees(sid, cid); return Json(result, JsonRequestBehavior.AllowGet); }
Любая помощь будет оценена по достоинству. Спасибо
Member 12611488
Несколько раз я получаю ошибку "Внутренняя ошибка сервера 500"