Как передать значение в частичный тег помощника? (ASP. NET Core) - PullRequest
0 голосов
/ 30 января 2020

Я пытаюсь визуализировать частичное представление внутри формы, мне нужно использовать значение l oop (+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 голосов
/ 31 января 2020

Я пытаюсь визуализировать частичное представление внутри формы, мне нужно использовать значение l oop (+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>
...