Javascript 从局部视图中的PageModel获取对象

Javascript 从局部视图中的PageModel获取对象,javascript,c#,html,asp.net-core,razor-pages,Javascript,C#,Html,Asp.net Core,Razor Pages,我在PageModel中有companys对象,它是cshtml中的下拉列表,我有信息表的部分视图,该表取决于下拉列表中选定的公司。 每个用户都拥有每个公司的登记和权限,并且基于此,用户拥有信息的权限(例如编辑信息、删除信息)。 我想获取所选公司,并从信息表中的下拉列表中获取这些权限 主CSHTML @page @model Fachinformationsdienst_Kundenportal.Pages.Information_listModel @{ } <div class=&qu

我在PageModel中有companys对象,它是cshtml中的下拉列表,我有信息表的部分视图,该表取决于下拉列表中选定的公司。 每个用户都拥有每个公司的登记和权限,并且基于此,用户拥有信息的权限(例如编辑信息、删除信息)。 我想获取所选公司,并从信息表中的下拉列表中获取这些权限

主CSHTML

@page
@model Fachinformationsdienst_Kundenportal.Pages.Information_listModel
@{
}
<div class="form-group col-md-4">
    <label for="inputState">Unternehmen</label>
    <select id="inputState" class="form-control">
        <option selected>Wählen Sie die Firma aus...</option>
        @for (int i = 0; i < Model.companies.Count; i++)
        {
            <option>@Model.companies[i].FirmenKurzBezeichnung</option>
        }
    </select>
</div>
<div id="fachinfoContainer">
    <partial name="_FachinfoPartial" model="@Model.fachinfos" />
</div>

@section Scripts{
    <script type="text/javascript">
        $(function () {
            $("#inputState").change(function () {
                var selectcompany = "";
                if ($(this).val() != "Wählen Sie die Firma aus...") {
                    selectcompany = $(this).val();
                }
                $.ajax({
                    url: "/Actions/Information-List?handler=fachinfoPartial",
                    type: "Get",
                    data: { company: selectcompany },
                    success: function (result) {
                        $("#fachinfoContainer").html(""); //clear the fachinfo container.
                        $("#fachinfoContainer").html(result); //populate the container.
                    },
                    error: function (result) {
                        alert(result);
                    }
                });
            });
        });
    </script>
}

您可以定义包含公司和fachinfos的ViewModel,然后将此ViewModel用作partialview的页面模型

public class MyViewModel
{
    public Company SelectedCompany { get; set; }
    public List<Fachinfo> Fachinfos { get; set; }
}
在部分观点中:

@model Namespace.MyViewModel
然后,您可以查看Company和Fachinfo,如下所示:

Model.SelectedCompany 
Model.Fachinfos
public class MyViewModel
{
    public Company SelectedCompany { get; set; }
    public List<Fachinfo> Fachinfos { get; set; }
}
public PartialViewResult OnGetFachinfoPartial(string company)
{
    //based on the selctedcompany to filter data, then return to the partial view.
    var myViewModel = new MyViewModel()
    {
        SelectedCompany = GetCompany(company),     //get the company object here
        Fachinfos = APIRequester.GetFachinfos(company)
    };

    return Partial("_FachinfoPartial", myViewModel);
}
@model Namespace.MyViewModel
Model.SelectedCompany 
Model.Fachinfos