首页 > 解决方案 > 需要帮助将第三个参数传递给复合页面上的 4 个部分视图

问题描述

需要帮助将第三个参数传递给复合页面上的 4 个部分视图。对于以前寻求答案的尝试,请参阅 此处以获取屏幕截图的努力,在此处查看我尝试使用未成功的部分答案)

我很坚持,但我仍然在寻找正确的方法来将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 -->

当从如下所示的上一页的下拉列表中选择时,此参数是SelectedAlertIndex该结果的 int :@model edxl_cap_v1_2.Models.ContentViewModels.AlertViewModelAlert_IdentifierAlertPick.cshtml

@{
    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第三个参数是否需要该子句或类似的东西,因为它指定等于 SelectedAlertIndex 的相应 XxxxIndex?这里是 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));
    }

标签: asp.net-mvc

解决方案


推荐阅读