c# - 问题:在单个 AspNetCore MVC 视图页面上为具有不同模型的 4 个 PartialView 中的每一个添加共享条件
问题描述
仅供参考,我查看了许多相关站点,事实上,我能够选择一种方法在该研究的单个视图页面上显示具有不同模型的多个局部视图,但这是我之前得到的其他业务的新闻把我带走了。
我需要添加一个条件,例如 where 子句(例如return View(_context.Alert.Where(x => x.AlertIndex == SelectedAlertIndex));
到我的 Assemble.cshtml 页面中的以下 PartialViews:
@model edxl_cap_v1_2.Models.ContentViewModels.EdxlCapMessageViewModel
<head>
<meta name="viewport" content="width=device-width" />
<title>Assembled EDXL-CAP Message</title>
</head>
<!-- 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 -->
当前,此页面显示DetailsXXXX
没有模型项值的 PartialViews。用户通过选择页面上所有四个视图共有的 Alert_Identifier 进入此AlertPick.cshtml
页面:
@model edxl_cap_v1_2.Models.ContentViewModels.EdxlCapMessageViewModel
@{
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.cshtml
页面显示表格的行中Alert_Identifier
的 4 个DetailsXXXX
页面中的每一个,其中的提交按钮为 value Check XXXX
,最后第五行的Alert_Identifier
和提交按钮为 value Add All
。
@model IEnumerable<edxl_cap_v1_2.Models.ContentViewModels.Alert>
@using edxl_cap_v1_2.Models.ContentViewModels
@{
ViewData["Title"] = "PickAlert";
}
<head>
<meta name="viewport" content="width=device-width" />
<title>@ViewBag.Title</title>
</head>
<h4>Alert</h4>
<div>
@ViewBag.Message
</div>
<style>
tr:nth-child(even) { background-color: lightBlue; }
tr:nth-child(odd) { background-color: white; }
</style>
<table class="smallText">
@foreach (var item in Model)
{
<tr>
<td>
</td>
<td>
<div id="elementInput">
<span class="smallText">
@Html.DisplayNameFor(model => model.Alert_Identifier) value
<input type="text" name="elementValue" value="@Html.DisplayFor(modelItem => item.Alert_Identifier)" size="60" />
</span>
</div>
</td>
<td>
<text> </text>
</td>
<td>
<form asp-area="" asp-controller="alerts" asp-action="_DetailsAlert" method="post" asp-route-id="@item.AlertIndex">
<input type="hidden"
name="Identifier"
value="@Html.DisplayFor(modelItem => item.Alert_Identifier)">
<input type="submit"
value="Check Alert">
</form>
</td>
<td>
<text> </text>
</td>
</tr>
<tr>
<td>
</td>
<td>
<div id="elementInput">
<span class="smallText">
@Html.DisplayNameFor(model => model.Alert_Identifier) value
<input type="text" name="elementValue" value="@Html.DisplayFor(modelItem => item.Alert_Identifier)" size="60" />
</span>
</div>
</td>
<td>
<text> </text>
</td>
<td>
<form asp-area="" asp-controller="infos" asp-action="_DetailsInfo" method="post" asp-route-id="@item.AlertIndex">
<input type="hidden"
name="Identifier"
value="@Html.DisplayFor(modelItem => item.Alert_Identifier)">
<input type="submit"
value="Check Info">
</form>
</td>
<td>
<text> </text>
</td>
</tr>
<tr>
<td>
</td>
<td>
<div id="elementInput">
<span class="smallText">
@Html.DisplayNameFor(model => model.Alert_Identifier) value
<input type="text" name="elementValue" value="@Html.DisplayFor(modelItem => item.Alert_Identifier)" size="60" />
</span>
</div>
</td>
<td>
<text> </text>
</td>
<td>
<form asp-area="" asp-controller="areas" asp-action="_DetailsArea" method="post" asp-route-id="@item.AlertIndex">
<input type="hidden"
name="Identifier"
value="@Html.DisplayFor(modelItem => item.Alert_Identifier)">
<input type="submit"
value="Check Area">
</form>
</td>
<td>
<text> </text>
</td>
</tr>
<tr>
<td>
</td>
<td>
<div id="elementInput">
<span class="smallText">
@Html.DisplayNameFor(model => model.Alert_Identifier) value
<input type="text" name="elementValue" value="@Html.DisplayFor(modelItem => item.Alert_Identifier)" size="60" />
</span>
</div>
</td>
<td>
<text> </text>
</td>
<td>
<form asp-area="" asp-controller="resources" asp-action="_DetailsResource" method="post" asp-route-id="@item.AlertIndex">
<input type="hidden"
name="Identifier"
value="@Html.DisplayFor(modelItem => item.Alert_Identifier)">
<input type="submit"
value="Check Resource">
</form>
</td>
<td>
<text> </text>
</td>
</tr>
<tr>
<td>
</td>
<td>
<div id="elementInput">
<span class="smallText">
@Html.DisplayNameFor(model => model.Alert_Identifier) value
<input type="text" name="elementValue" value="@Html.DisplayFor(modelItem => item.Alert_Identifier)" size="60" />
</span>
</div>
</td>
<td>
<text> </text>
</td>
<td>
<form asp-area="" asp-controller="EdxlCapMessageViewModels" asp-action="Assemble" method="post" asp-route-id="@item.AlertIndex">
<input type="hidden"
name="Identifier"
value="@Html.DisplayFor(modelItem => item.Alert_Identifier)">
<input type="submit"
value="Add All">
</form>
</td>
<td>
<text> </text>
</td>
</tr>
}
</table>
四个单独的数据类别页面中的每一个都正确显示,但第五行显示的页面仅显示数据类别模型项,没有所选复合消息的值(使用Alert_Identifier
)。此页面代表应用程序的候选成品 - 这是页面,将与完成应用程序的页面Assemble.cshtml
非常相似。Review.cshtml
Approve.cshtml
我正在接近这个项目的结尾,这里的任何帮助将不胜感激。一旦完成并经过审查,它将开源,希望能吸引更多的开发人员来实施这套 OASIS 应急管理 IT 标准和规范。通过互操作地共享信息(交换数据)来帮助急救人员和应急管理人员更有效地完成工作是有意义的,因此应急数据交换语言 (EDXL) 规范和标准套件。</elevator pitch>
解决方案
推荐阅读
- php - HTML 表单 + PHP + MYSQL 500 错误
- express - nginx 代理传递快速路由
- javascript - 无法使用 RegEx 从未定义中读取属性“0”
- sql-server - 多连接 Tsql 合并低效代码
- microsoft-cognitive - QnA Maker - 无法与他人协作
- android - 任务':react-native-custom-tabs:transformDexArchiveWithExternalLibsDexMergerForDebugAndroidTest'的执行失败
- cassandra - 在现有的生产 cassandra 集群中添加新的密钥空间
- c - 为什么我的 for 循环增量变化很大?
- azure - Azure Functions - 队列触发器在失败时使用消息
- python - Numpy 维度的健全性检查?