Rezervasyon listemize sahip bir tablo içeren bir rezervasyon sayfam var. Her satırda, rezervasyonun düzenlenmesine izin veren bir düğme bulunur. Bu düğmeye tıklandığında, çeşitli alanları olan JavaScript'i kullanarak kalıcı bir pop-out formu görüntülenir. Rezervasyonun ID
numaralarını iyi çalışan başlığa geçiriyorum. BookingModel
, verilerin saklandığı BookingViewModels
listesine sahiptir.Form verilerini geçersiz kılma
Alanların değerini, Rezervasyon modelindeki (@Value = @item.Date
) değerler olarak ayarlamaya çalışıyorum, ancak kutudaki veriler üzerine yazılmıyor, ancak Tarih'i kendi başına yazdırıyorsam, doğru şekilde yazdırılıyor.
Verileri kutuda nasıl yazdırabilirim?
Modelleri
public class BookingViewModels
{
public List<BookingViewModel> BookingModel { get; set; }
/// <summary>
/// Date
/// </summary>
[DataType(DataType.Date)]
[Display(Name = "Date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd-MM-yyyy}")]
[Required(ErrorMessage = "This field is required")]
public string Date { get; set; }
/// <summary>
/// Start Time
/// </summary>
[DataType(DataType.Time)]
[Display(Name = "Start Time")]
[Required(ErrorMessage = "This field is required")]
public string StartTime { get; set; }
/// <summary>
/// End Time
/// </summary>
[DataType(DataType.Time)]
[Display(Name = "End Time")]
[Required(ErrorMessage = "This field is required")]
public string EndTime { get; set; }
}
public class BookingViewModel
{
public int BookingId { get; set; }
public string Date { get; set; }
public string StartTime { get; set; }
public string EndTime { get; set; }
public string inf1 { get; set; }
public string inf2 { get; set; }
}
Görünüm
//the table with the edit buttons
@foreach (var item in Model.BookingModel)
{
@{var grid = new WebGrid(Model.BookingModel, canSort: false); }
<input type="button" id="btnaddbooking" class="btn btn-small btn-primary" value="Add Booking" data-toggle="modal" data-target="#modalbox" />
<hr />
<div class="panel panel-default pre-scrollable">
<table class="table table-striped table-bordered table-responsive table-condensed table-hover">
<thead>
<tr>
<th>Date</th>
<th>Start Time</th>
<th>Duration</th>
<th>End Time</th>
<th>inf1</th>
<th>inf2</th>
</tr>
</thead>
@foreach (var item in Model.BookingModel)
{
<tr>
<td>
@item.Date
</td>
<td>
@item.StartTime
</td>
<td>
@item.Duration
</td>
<td>
@item.EndTime
</td>
<td>
@item.inf1
</td>
<td>
@item.inf2
</td>
@using (Html.BeginForm("Delete", "Booking", FormMethod.Post))
{
@Html.AntiForgeryToken()
<td>
<button class="someButtonClass" data-toggle="modal" data-target="#[email protected]" />
</td>
<td>
<button class="someButtonClass2" type="submit" value="Delete" />
</td>
}
</tr>
}
</table>
</div>
}
//the modal form
@foreach (var item in Model.BookingModel)
{
using (Html.BeginForm("Submit", "Booking", FormMethod.Post))
{
<div id="[email protected]" class="modal">
<div class="modal-dialog">
<div class="modal-content">
<div id="modal-header" class="modal-header">
<h1>Edit Booking #@item.BookingId</h1>
</div>
<div class="modal-body">
<table id="booking-model-table" class="table table-condensed table-striped table-bordered">
<tr>
<td>Date:</td>
<td>
@{
@Html.EditorFor(m => m.Date, new { type = "time", @Value = @item.Date })
@Html.ValidationMessageFor(m => m.Date, "", new { @class = "text-danger" })
}
@item.Date
</td>
</tr>
<tr>
<td>Start Time:</td>
<td>
@{
@Html.EditorFor(m => m.StartTime, new { type = "time", Value = @item.StartTime })
@Html.ValidationMessageFor(m => m.StartTime, "", new { @class = "text-danger" })
}
</td>
</tr>
<tr>
<td>End Time:</td>
<td>
@{
@Html.EditorFor(m => m.EndTime, new { type = "time", Value = @item.EndTime })
@Html.ValidationMessageFor(m => m.EndTime, "", new { @class = "text-danger" })
}
</td>
</tr>
</table>
</div>
<div class="modal-footer">
@Html.AntiForgeryToken()
<button class="btn btn-default" data-dismiss="modal">Close</button>
<button class="btn btn-primary" type="submit" value="Submit">Ok</button>
</div>
</div>
</div>
</div>
}
}
JavaScript
$(function() {
var modelbox = function() {
$("#modalbox").modal("show");
};
$("#btnaddbooking").on('click', modelbox);
});
Bu sayfayı güncellemek düğmeye
.click()
etkinliği işleyecek bir tablosunu göstermektedir Bu tabloda yer alan her satırın bir düzenleme düğmesi vardır. Her düzenleme düğmesi, seçilen rezervasyonun kendisine yüklenmesine izin veren benzersiz bir forma bağlanır. Değer özelliğini kullanmadığınız geri bildirimler için teşekkürler, ancak bunu yapmanın başka bir yolunu önerebilir misiniz? Bunu nasıl yapacağımı bilmediğim soru buydu. Form, tüm amaç ve rezervasyon ve doğrulama işlemleri için doğru şekilde çalışır. Doğru yapmadığı tek şey, değerleri form kutularına önceden yüklemektir. – BenTeşekkürler. İlk foreach döngüsü hakkında daha fazla bilgi ekledim. – Ben