Почему некоторые свойства модели равны нулю / ничего? - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь ПОСТАВИТЬ модель из вида.Модель, которую я публикую, всегда неверна, на данный момент второе свойство - ничто.При разных подходах иногда мне заполняли свойства стенда, но свойства двух свойств были ничем.

https://i.imgur.com/KRmpGT4.png

Извините за мой плохой английский.Я надеюсь, что вы можете понять мою проблему.

По словам Google, привязка модели испортилась, поэтому я должен использовать другое имя для моего свойства в POST-методе.Не работал.Также я прочитал, что я мог бы попробовать использовать два параметра для моей модели, названные «Anfang» и «Ende» для каждого из свойств моей модели.Не работал.

Моя модель:

Public Class Stempel
    Public Property ID As Integer
    <Required>
    Public Property Gestempelt As Date
    <Required>
    Public Overridable Property Mitarbeiter As Mitarbeiter
    <Required>
    Public Overridable Property Stempelstati As Stempelstati
End Class

<NotMapped>
Public Class StempelBearbeiten
    Public Property Anfang As Stempel
    Public Property Ende As Stempel
End Class

Мой метод Get, для редактирования данных:

Function StempelBearbeiten(ByVal id As Integer?, ByVal ende As Integer?) As ActionResult
        If id Is Nothing OrElse ende Is Nothing Then
            Return New HttpStatusCodeResult(Net.HttpStatusCode.BadRequest)
        End If
        Dim stempelAnfang = entity.Stempel.Find(id)
        Dim stempelEnde = entity.Stempel.Find(ende)
        If stempelAnfang Is Nothing OrElse stempelEnde Is Nothing Then
            Return New HttpStatusCodeResult(Net.HttpStatusCode.NotFound)
        End If
        Dim t As New StempelBearbeiten With {
            .Anfang = New Stempel With {.ID = stempelAnfang.ID, .Gestempelt = stempelAnfang.Gestempelt, .Stempelstati = stempelAnfang.Stempelstati},
            .Ende = New Stempel With {.ID = stempelEnde.ID, .Gestempelt = stempelEnde.Gestempelt}}
        ViewData("Stempelliste") = New SelectList(entity.Stempelstati.Where(Function(x) x.Aktiv).ToList, "ID", "Bezeichnung", stempelAnfang.Stempelstati.ID)
        Return View(t)
    End Function

Мой вид:

@ModelType ZeiterfassungWebMvc.Models.StempelBearbeiten
@Code
ViewData("Title") = "StempelBearbeiten"
End Code
@Using (Html.BeginForm())
@Html.AntiForgeryToken()

@<div Class="container">
    <div Class="text-center">
        <h2> Eintrag bearbeiten</h2>
        <h4>@Model.Anfang.Gestempelt - @Model.Ende.Gestempelt</h4>
    </div>
    <hr />
    <div class="form-horizontal">
        <div class="form-group">
            <div class="row">
                <div class="col">
                    <label>Eingestempelt</label>
                    @Html.HiddenFor(Function(x) x.Anfang.Gestempelt)
                    @Html.DevExpress.DateEditFor(Function(x) x.Anfang.Gestempelt, Sub(settings)
                                                                                      settings.Name = "deEingestempelt"
                                                                                      settings.Theme = "Moderno"
                                                                                      settings.Properties.EditFormat = EditFormat.Custom
                                                                                      settings.Properties.EditFormatString = "dd.MM.yyyy, HH:mm:ss"
                                                                                      settings.Properties.TimeSectionProperties.Visible = True
                                                                                      settings.Properties.TimeSectionProperties.TimeEditProperties.EditFormat = EditFormat.Custom
                                                                                      settings.Properties.TimeSectionProperties.TimeEditProperties.EditFormatString = "HH:mm:ss"
                                                                                  End Sub).GetHtml
                </div>
                <div class="col">
                    <label>Ausgestempelt</label>
                    @Html.HiddenFor(Function(x) x.Ende.Gestempelt)
                    @Html.DevExpress.DateEditFor(Function(x) x.Ende.Gestempelt, Sub(settings)
                                                                                    settings.Name = "deAusgestempelt"
                                                                                    settings.Theme = "Moderno"
                                                                                    settings.Properties.EditFormat = EditFormat.Custom
                                                                                    settings.Properties.EditFormatString = "dd.MM.yyyy, HH:mm:ss"
                                                                                    settings.Properties.TimeSectionProperties.Visible = True
                                                                                    settings.Properties.TimeSectionProperties.TimeEditProperties.EditFormat = EditFormat.Custom
                                                                                    settings.Properties.TimeSectionProperties.TimeEditProperties.EditFormatString = "HH:mm:ss"
                                                                                End Sub).GetHtml
                </div>
            </div>
        </div>
        <div class="form-group">
            <label>Stempelbezeichnung</label>
            @Html.HiddenFor(Function(x) x.Anfang.Stempelstati.ID)
            @Html.DropDownListFor(Function(x) x.Anfang.Stempelstati.ID, DirectCast(ViewData("Stempelliste"), SelectList), New With {.class = "selectpicker form-control", .title = "Bitte wählen Sie eine Rolle aus"})
        </div>

        <div Class="form-group">
            <div Class="btn-group" role="group" aria-label="Bearbeitung">
                <input type="submit" value="Speichern" Class="btn btn-success" />
                @Html.ActionLink("Abbrechen & Zurück", "Übersicht", Nothing, New With {.class = "btn btn-danger"})
            </div>
        </div>
    </div>
</div>
End Using

Мой POST-метод:

<HttpPost>
    <ValidateAntiForgeryToken>
    <ActionName("StempelBearbeiten")>
    Function Bearbeiten(ByVal brb As Models.StempelBearbeiten) As ActionResult

    End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...