C# 部分视图刷新后更新模态数据

C# 部分视图刷新后更新模态数据,c#,asp.net-mvc,model-view-controller,C#,Asp.net Mvc,Model View Controller,我在主视图中有一个选择框。该视图包含一个局部视图当选择框上的值更改时,我希望重新加载局部视图(使用模型中的一些新数据),并使用新数据更新模态内容 我可以成功地重新加载部分视图,我的问题是,模式更新的最佳方法是什么 我看到的选择: 在主视图中定义模态,但不知道如何访问传递到局部视图的模型中的数据 在局部视图中定义模态,但这是一个好的实践吗 将包含所有信息的模型传递给主视图,但是这样,当选择框上的值更改时,我需要刷新所有视图,并且我更喜欢只重新加载部分视图 我从您的问题中了解到的是,您有一个主视图

我在主视图中有一个选择框。该视图包含一个局部视图当选择框上的值更改时,我希望重新加载局部视图(使用模型中的一些新数据),并使用新数据更新模态内容

我可以成功地重新加载部分视图,我的问题是,模式更新的最佳方法是什么

我看到的选择:

  • 在主视图中定义模态,但不知道如何访问传递到局部视图的模型中的数据
  • 在局部视图中定义模态,但这是一个好的实践吗
  • 将包含所有信息的模型传递给主视图,但是这样,当选择框上的值更改时,我需要刷新所有视图,并且我更喜欢只重新加载部分视图

我从您的问题中了解到的是,您有一个主视图,其中有一个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>
}
步骤。3:最后 您的局部视图[\u YourPartialView.cshtml]

@model yourModel

your logic of rendering data will go here
@model yourModel

your logic of rendering data will go here