如何在 ASP.NET 5 MVC 的局部视图中更改 @Model

How to change the @Model in a partial view in ASP.NET 5 MVC

我需要帮助来进行局部视图。我创建了一个局部视图,我想更改其中的模型。另外,我希望我的部分视图由控制器控制。

我不明白为什么不行。

这是视图的标记:

<select asp-for="Categorie" id="categorie">
    <script>
        $('#categorie').load('/Home/BudgetSearch');
    </script>
</select>

这是我的控制器:

public IActionResult BudgetSearch()
{
        //var bdd = new ComptesBudgetViewModel();

        var query = _context.Budget.Select(oa => oa.Categorie).Distinct();

        return PartialView("BudgetSearch", query.ToList());
}

这是我的部分视图的代码:

@model Comptes.core.data.Models.Budget

<option value="" selected>Choisir</option>
@foreach (var budget in Model.Categorie)
{
    <option value="@budget">@budget</option>
}

谁能帮我解决这个问题?

假设您的徽章有一个类别 属性,更改您的代码:

@model IEnumerable<Comptes.core.data.Models.Categorie>

<option value="" selected>Choisir</option>
@foreach (var category in @Model)
{
    <option value="@category.Name">@category.Name</option>
}

也许你需要改变你的行动:

public IActionResult BudgetSearch()
{
        //var bdd = new ComptesBudgetViewModel();

        var query = _context.Set<Categorie>().ToList()

        return PartialView("BudgetSearch", query);
}