asp.net - 如何将值传递给部分标签助手?(ASP.NET 核心)
问题描述
我正在尝试在表单中呈现局部视图,我需要使用循环的值(当然是 +1,因为它从 0 开始)作为我的局部值之一,任何想法如何使这项工作?
我尝试使用 ViewData 或 ViewBag 来执行此操作,但要么这是错误的方法,要么我执行错误
这是我的主要形式:
@model Measurement
<form asp-action="Create" method="post">
<div class="form-group" hidden>
<label asp-for="LymphSiteId"></label>
<input asp-for="LymphSiteId" value=@ViewBag.Id />
<span asp-validation-for="LymphSiteId"></span>
</div>
<div class="form-group" hidden>
<label asp-for="UserId"></label>
<input asp-for="UserId" value="1" />
<span asp-validation-for="UserId"></span>
</div>
<div class="form-group">
<label asp-for="MeasurementDate"></label>
<input asp-for="MeasurementDate" />
<span asp-validation-for="MeasurementDate"></span>
</div>
@for (int i = 0; i < ViewBag.NumMeasuringPoints; i++)
{
<partial name="_New" view-data=@(i+1) />
}
<button type="submit">Submit</button>
</form>
这是我的部分:
@model Circumference
<div class="form-group" hidden>
<input asp-for="Id" />
</div>
<div class="form-group" hidden>
<input asp-for="MeasurementId" value="@ViewBag.Id" />
</div>
<div class="form-group">
<label asp-for="PositionFromStart">Position from Start</label>
<input asp-for="PositionFromStart" value="@ViewData" />
</div>
<div class="form-group">
<label asp-for="DistanceAround">Circumference at point (cm)</label>
<input asp-for="DistanceAround" />
</div>
非常感谢任何帮助 - 谢谢!
解决方案
我正在尝试在表单中呈现局部视图,我需要使用循环的值(当然是 +1,因为它从 0 开始)作为我的局部值之一,任何想法如何使这项工作?
您可以尝试修改如下代码以分配 ViewDataDictionary 以传递给您的局部视图。
主要形式
@for (int i = 0; i < ViewBag.NumMeasuringPoints; i++)
{
ViewData["PositionFromStart"] = i + 1;
var pmodel = new Circumference();
<partial name="_New" model="pmodel" view-data="ViewData" />
}
局部视图
@model Circumference
<div class="form-group" hidden>
<input asp-for="Id" />
</div>
<div class="form-group">
<input asp-for="MeasurementId" value="@ViewBag.Id" />
</div>
<div class="form-group">
<label asp-for="PositionFromStart">Position from Start</label>
<input asp-for="PositionFromStart" value="@ViewData["PositionFromStart"]" />
</div>
<div class="form-group">
<label asp-for="DistanceAround">Circumference at point (cm)</label>
<input asp-for="DistanceAround" />
</div>
推荐阅读
- java - 无法在 Fragment 中使用 Toothpick.inject
- spring - 从依赖项目自动装配的 NPE
- mysql - Mysql空表连接失败
- java - 布局大于设备屏幕会导致应用崩溃
- c# - 显示返回结果(对象)的视图 Prism
- amazon-web-services - AWS 企业账户 - IAM 设置
- outlook - 在 .msg 文件中更改 SenderName
- flutter - 在颤动中按下后如何立即更改图标颜色?
- javascript - ruby on rails 中的 jquery.raty 星号
- amazon-ec2 - 缺少具有多个 EC2 实例的 Drupal 7 + AWS aws 负载均衡器 + 临时文件夹文件