首页 > 解决方案 > 如何在 ASP.NET 5 MVC 的局部视图中更改 @Model

问题描述

我需要帮助才能做出部分看法。我创建了一个局部视图,我想更改其中的模型。另外,我希望我的部分视图由控制器控制。

我不明白为什么它不好。

这是视图的标记:

<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>
}

有人可以帮我解决这个问题吗?

标签: c#asp.net-mvcasp.net-mvc-partialview

解决方案


假设您的徽章具有 Category 属性,请更改您的代码:

@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);
}

推荐阅读