Обновление модальных данных после частичного обновления вида - PullRequest
0 голосов
/ 30 января 2019

У меня есть поле выбора на главном экране.Это представление имеет частичное представление. Когда значение в этом поле выбора изменяется, я хочу перезагрузить частичное представление (с некоторыми новыми данными из модели) и обновить модальное содержимое этими новыми данными .

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

Параметры, которые я вижу:

  • определяют модальную форму в главном окне, но не знают, какполучить доступ к данным из модели, переданной в частичное представление;
  • определить модальное внутреннее частичное представление, но является ли это хорошей практикой?
  • передать модель со всей информацией в основное представление, но этоКстати, когда значение в поле выбора изменяется, мне нужно обновить все представление, и я предпочитаю перезагрузить только частичное представление.

1 Ответ

0 голосов
/ 31 января 2019

Что я понимаю из вашего вопроса, так это то, что у вас есть главное представление, в котором есть элемент управления SelectList для изменения выбора, в котором SelectList вы хотите обновить часть представления (частичное представление), для той части, которую вы можете использоватьчастичный вид.Если это так, выполните следующие шаги, надеюсь, это поможет вам в решении вашей задачи:

Шаг: 1: допустим, это ваш главный вид [MainView.cshtml]

@model yourProjectNameSpace.SomeModel

@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>@ViewBag.Title</h2>

<select id='yourSelectList'>
  <option value="1">Option One</option>
  <option value="2">Option two</option>
</select>

<div id="PartialAreaToUpdate">
    @Html.Partial("_YourPartialView", Model)
</div>

@section scripts
{
<script>
        $('#yourSelectList').change(function () {
            var selectedvalue = $(this).val();
            if (!selectedvalue ) {
                return;
            }
            $.ajax({
                type: 'POST',
                url: '@Url.Action("GetYourUpdatedPartial", "YourControllerName")',
                data: { selectedvalue: selectedvalue},
                success: function (response) {
                     $('#PartialAreaToUpdate').html('');
                     $('#PartialAreaToUpdate').html(response);
                }
            });
        });
</script>
}

step.2: код вашего контроллера будет выглядеть как

    public class YourControllerNameController : Controller
    {
        public ActionResult GetYourUpdatedPartial(string selectedvalue)
        {
            var model = getUpdtedDataFromYOurStor(selectedValue);
            return View("_YourPartialView", model);
        }
    }

step.3. Наконец, ваше частичное представление [_YourPartialView.cshtml]

@model yourModel

your logic of rendering data will go here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...