Kendo DateTimePicker не передает измененное значение контроллеру ASP MVC - PullRequest
0 голосов
/ 13 июня 2018

У меня есть Kendo DateTimePicker, который не передает измененное значение в контроллер.Я просто получаю исходное значение привязки.

Вот код вида:

@for (var i = 0; i < Model.Call.CallTimeSheets.Count(); i++ )
{

    <tr>                                            
        <td>@(Html.Kendo().DateTimePickerFor(model => Model.Call.CallTimeSheets[i].StartTime)
                                                .Name("Start" + i.ToString())
                                                .Format("dd-MM-yyyy HH:mm")
        </td>

        <td>@(Html.Kendo().DateTimePickerFor(model => Model.Call.CallTimeSheets[i].StopTime)
                                                .Name("Stop" + i.ToString())
                                                .Format("dd-MM-yyyy HH:mm")  
        </td>                                   
    </tr>  

 }

Вот модель вида:

public class CallEditViewModel
{
    public Call Call { get; set; }

    public IEnumerable<SelectListItem> Employees { get; set; }

    public IEnumerable<SelectListItem> ClientCallers { get; set; }

    public IList<CallTimeSheet> TimeSheet { get; set; }
}

А вот модель:

[Table("CallTimeSheet")]
public class CallTimeSheet
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Guid ID { get; set; }

    public Guid CallID { get; set; }

    [ForeignKey("CallID")]
    public virtual Call Call { get; set; }

    public Guid? EmployeeID { get; set; }

    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MMMMM-dd}")]
    [Display(Name = "Start Time")]
    public DateTime? StartTime { get; set; }

    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MMMMM-dd}")]
    [Display(Name = "Start End")]
    public DateTime? StopTime { get; set; }

    [Timestamp]
    public byte[] RowVersion { get; set; }

    public TimeSpan? CallDuration()
    {
        return StopTime - StartTime;
    }
}

Когда отправляется форма, я не получаю ошибок, но значения времени начала и окончания, отправленные в контроллер, являются исходными значениями, передаваемыми в представление из GET контроллера.

Есть несколько подобных вопросов, но ни одно из решений не сработало.

1 Ответ

0 голосов
/ 14 июня 2018

Я не нашел точного решения своего вопроса, но, чтобы обойти свою проблему, я вместо этого использовал простой «TextBoxFor» вместо Kendo «DateTimePickerFor».

Я изменил свой код, чтобы использовать вместо этого:

<td>@Html.TextBoxFor(model => Model.Call.CallTimeSheets[i].StartTime, "{0:yyyy-MM-dd 
hh:mm:ss tt}")</td>

Из этого:

<td>@(Html.Kendo().DateTimePickerFor(model => Model.Call.CallTimeSheets[i].StartTime)
                                            .Name("Start" + i.ToString())
                                            .Format("dd-MM-yyyy HH:mm")</td>

Часть моей проблемы с именем была построена неправильно и формат даты, но даже после исправления обоих в DateTimePicker, поскольку я все еще не получалрезультаты пройдены, поэтому я не использовал его.

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