У меня есть частичное представление, которое заполняет параметр выбора.
Из другого представления мне нужно вызвать предыдущее частичное представление, чтобы отобразить мой компонент <select> <option> />
.
Однако мне нужно вызвать частичное представление С соответствующим контроллером.
Примечание. Я использую .NET Core 6.
Вот мой контроллер:
public async Task<IActionResult> getYearMonth()
{
var result = await _context.MonthlyConsumption.Select(t => new { t.Time.Year, t.Time.Month }).ToListAsync();
return PartialView(result);
}
И мой PartialView:
@model IEnumerable<TestLogin.Models.MonthlyConsumption>
<select name="mois" id="mois">
@foreach(var item in Model){
<option value="@Html.DisplayFor(modelItem => item.Time)">@Html.DisplayFor(modelItem => item.Time)</option>
}
</select>
Я хочу вызвать метод действия контроллера частичного представления.
Я пытался использовать @Html.Action
, @Html.RenderAction
, но не могу.
@Html.Action не работает, потому что я использую .NET 6
И я не знаю, почему @Html.RenderAction не работает: IHtmlHelper does not contain definition for RenderAction
.
Я посмотрел, почему я получаю это сообщение об ошибке. Некоторые люди говорят, что вам нужно импортировать System.Web.Mvc
, но я не могу заставить его импортировать в .NET 6.
@Html.RenderAction
и @Html.Action
недоступны в Asp.Net Core. Есть два метода, с помощью которых можно добиться желаемого.
Первый метод заключается в использовании View Component
. Это новая функция в Asp.Net Core, а также официально рекомендуемый метод. Более подробную информацию вы можете найти по этой ссылке.
Второй метод заключается в использовании ajax, вы можете использовать ajax для доступа к действию. Затем в методе успеха вы можете использовать js, чтобы добавить это частичное представление в основное представление.
Я использовал View Component, и он отлично работает, спасибо.