Member 12611488 Ответов: 1

Как обновить частичное представление в 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"

1 Ответов

Рейтинг:
2

Member 12611488

На самом деле этот элемент у меня есть но он отсутствует во время публикации

<div id="PartialContainer">
@foreach (var item in Model)
{
    @Html.Partial("_Employee", item);
}
</div>


Вызов Ajax
function GetEmp() {
$.ajax({
data: dataObject,
url: '/Employees/GetEmployees', type: "POST", dataType: "json",
contentType: 'application/json',
success: function (result) {
$("PartialContainer").html(result);
})
}


метод действия
[HttpPost]
public ActionResult GetEmployees(string sid, string cid)
{
    var result = empRepo.GetEmployees(sid, cid);
    return Json(result, JsonRequestBehavior.AllowGet);
}