Нужна помощь в передаче 3-го параметра для 4-х частичных просмотров на составной странице.Для предыдущих попыток поиска ответа см. здесь для усилий со скриншотами и здесь для частичных ответов, которые я пытался использовать безуспешно) .
Я настойчив, но яЯ все еще не могу найти правильный способ передачи 3-го параметра для типа int Id
в строках @Html.Partial("_DetailsXxxx", Model.Xxxx, ?)
в 4 частичных просмотра на странице _Assemble.cshtml
, показанной ниже:
@model edxl_cap_v1_2.Models.ContentViewModels.EdxlCapMessageViewModel
@{
Layout = "~/Views/Shared/_EdxlLayout.cshtml";
}
<!DOCTYPE html>
<head>
<meta name="viewport" content="width=device-width" />
<link rel="stylesheet" href="~/css/capv1_2_refimp.css" />
<title>Assemble EDXL-CAP Message</title>
</head>
<h4>Assemble EDXL-CAP Message</h4>
<!-- DetailsAlert -->
<div class="content-wrapper">
@Html.Partial("_DetailsAlert", Model.Alert)
</div>
<!-- End of DetailsAlert -->
<!-- DetailsInfo -->
<div class="content-wrapper">
@Html.Partial("_DetailsInfo", Model.Info)
</div>
<!-- End of DetailsInfo -->
<!-- DetailsArea -->
<div class="content-wrapper">
@Html.Partial("_DetailsArea", Model.Area)
</div>
<!-- End of DetailsArea -->
<!-- DetailsResource -->
<div class="content-wrapper">
@Html.Partial("_DetailsResource", Model.Resource)
</div>
<!-- End of DetailsResource -->
Этот параметр представляет собой int для SelectedAlertIndex
, который получается, когда Alert_Identifier
выбран из раскрывающегося списка на предыдущей странице AlertPick.cshtml
, показанной ниже: @model edxl_cap_v1_2.Models.ContentViewModels.AlertViewModel
@{
ViewData["Title"] = "AlertPick";
}
<head>
<meta name="viewport" content="width=device-width" />
<title>@ViewBag.Title</title>
</head>
@{
<h4>@Model.Alerts.Count Alerts</h4>
<form asp-controller="Alerts" asp-action="PickAlert" method="post">
<select class="cap_select" id="cap_select" style="width:100%;max-width:95%;"
asp-for="SelectedAlertIndex" asp-items="Model.Alert_Identifiers">
<option>Select one</option>
</select>
<br />
<input type="submit" name="PickAlert" value="Pick Alert to Assemble EDXL-Cap Message" />
</form>
}
PickAlert()
код контроллера для этой страницы:
public IActionResult PickAlert(Alert obj, int? SelectedAlertIndex)
{
if (SelectedAlertIndex.HasValue)
{
ViewBag.Message = "Alert loaded successfully";
}
return View(_context.Alert.Where(x => x.AlertIndex == SelectedAlertIndex));
}
Существуют также контроллеры с аналогичным кодом для PickResource, () PickArea () и PickInfo (), но я не использую их в отдельных выпадающих списках, ноИнтересно, нужно ли для третьего параметра предложение Where
или что-то подобное, потому что оно определяет соответствующий XxxxIndex, равный SelectedAlertIndex?Вот PickInfo (), например:
public IActionResult PickInfo(Info obj, int? SelectedAlertIndex)
{
if (SelectedAlertIndex.HasValue)
{
ViewBag.Message = "Info loaded successfully";
}
return View(_context.Info.Where(x => x.InfoIndex == SelectedAlertIndex));
}