Asp.net

如何將值傳遞給部分標籤助手?(ASP.NET 核心)

  • April 8, 2022

我正在嘗試在表單中呈現局部視圖,我需要使用循環的值(當然是 +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>

引用自:https://stackoverflow.com/questions/59990186