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