Amacım, eğitimdeki en son tarihi almak ve ona 1 yıl ekleyerek göstermektir. Ben kod fisrt ve ASP.net MVC kullanıyorum. İlk masamıza Kişi denir ve bir kişide tüm temelleri içerir. İkinci tabloya Oturum denir ve önceki tüm tarihleri içerir ve birey eğitilmiştir. Sessions.cs Sistem kullanılarak bu gibi görünüyor; System.Collections.Generic kullanarak ; System.ComponentModel.DataAnnotations kullanarak ;Bir DateTime gösteriliyor + 1 yıl
namespace CleryAct.Models
{
public class Session
{
[Key]
public int ID { get; set; }
[StringLength(9, MinimumLength = 9, ErrorMessage = "Rocket Number must be longer than 9 characters.")]
public string rockets { get; set; }
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime training { get; set; }
public virtual Person Person { get; set; }
}
}
benim görünümü için kod benim benim görünüme yeni iskele öğesi ekleme ve kişiler veritabanına bağlayarak oluşturulmuştur. Aşağıda gösterilmek için +1 yıla ihtiyacım var, ancak bu hatayı mevcut kodla alıyorum.
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.csa)
</td>
<td>
@Html.DisplayFor(modelItem => item.lname)
</td>
<td>
@Html.DisplayFor(modelItem => item.fname)
</td>
<td>
@Html.DisplayFor(modelItem => item.rockets)
</td>
<td>
@Html.DisplayFor(modelItem => item.email)
</td>
<td>
@Html.DisplayFor(modelItem => item.Sessions.ElementAtOrDefault(0).training.AddYears(1))*
</td>
<td>
Değişken, bir DateTime'dır. Razor MVC
Ve hata ... bir ... ...:
yerine bu deneyin? –
Yani, modelinizde başka bir özellik istiyorsanız, public DateTime trainingEnd => training.AddYears (1) 'gibi bir şey istiyor ve buna bir açıklama ekliyorsunuz? – DavidG
System.Web.Mvc.dll dosyasında 'System.InvalidOperationException' türünde bir istisna oluştu ancak kullanıcı kodu 'da işlenmedi Ek bilgi: Şablonlar yalnızca alan erişimi, özellik erişimi, tek boyutlu dizi dizini ile kullanılabilir veya tek parametreli özel dizinleyici ifadeleri. – netgen