DateUpicker пользовательского интерфейса jQuery не публикуется на сервере после развертывания - PullRequest
1 голос
/ 24 мая 2011

Итак, я опубликовал проект ASP.Net MVC3, который использует указатели даты jQuery UI на сервере IIS. Похоже, средства выбора даты не публикуют свои значения и возвращаются к значениям по умолчанию на серверной части.

В местном масштабе, хотя это работает как очарование. Это простой jQuery без каких-либо опций в DatePicker.

Есть хоть какая-то подсказка, почему это произойдет?

Дайте мне знать, что я могу опубликовать, чтобы помочь найти решение.

Спасибо!

Модель, которую я пытаюсь опубликовать обратно:

public class Report
{
    [Required]
    [DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
    public DateTime From { get; set; }
    [Required]
    [DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
    public DateTime To { get; set; }

    public virtual Car Car { get; set; }
    public virtual IEnumerable<Review> Reviews { get; set; }
}

Форма, которую я использую:

@model Cars.Models.Report

<h3>Create a report</h3>
@using (Html.BeginForm("Generate", "Report"))
{
<div>
    <div class="span-5">
        <div class="editor-label">
            @Html.LabelFor(model => model.From)
        </div>
        <div class="editor-field">
            @Html.TextBoxFor(model => model.From, new { @class = "datepicker lilbig" })
        </div>
    </div>

    <div class="span-5 last">
        <div class="editor-label">
            @Html.LabelFor(model => model.To)
        </div>
        <div class="editor-field">
            @Html.TextBoxFor(model => model.To, new { @class = "datepicker lilbig" })
        </div>
    </div>

    <div class="span-11 last">
        <div class="prepend-5 last">
            <input class="bigbtn" type="submit" value="Create" />
        </div>
        <div>
            @Html.ValidationSummary(true)
            @Html.ValidationMessageFor(model => model.From)
            @Html.ValidationMessageFor(model => model.To)
        </div>
    </div>
</div>
}

Метод, который я публикую на:

[HttpPost]
    public ActionResult Generate(Report model)
    {
        try
        {
            MembershipUser currentUser = Membership.GetUser(HttpContext.User.Identity.Name);
            Guid id = (Guid)currentUser.ProviderUserKey;
            Car currentCar = CarRepository.Get(id);

            currentCar.LastReportCreated = DateTime.Now;
            currentCar = CarRepository.Update(currentCar, true);

            model.Car = currentCar;
            model.Reviews = model.Car.Reviews.Where(s => s.LoggedAt.Date >= model.From.Date &&
                                                               s.LoggedAt.Date <= model.To.Date);

            return View("Report", model);
        }
        catch(Exception ex)
        {
            return View("Error");
        }
    }

JQuery выглядит так:

$(document).ready(function () {
    $(".datepicker").datepicker();
});

1 Ответ

0 голосов
/ 24 мая 2011

Убедитесь, что версия DatePicker на сервере является текущей и работает без ошибок. Также дважды проверьте данные формы, прежде чем она будет опубликована - убедитесь, что поля даты имеют значения:

$(document).ready(function () {

  $("form").submit(function(){
    $(".datepicker").each(function(){
      alert( $(this).attr("name") +": "+ $(this).value() );
    });
  });

});
...