开发者

jQuery UI Datepicker not Posting to Server after Deployment

So I published a ASP.Net MVC3 project that uses the jQuery UI datepickers on to a IIS server. The datepickers don't seem to post their values and revert to default values on the back end.

Locally, though it works like a charm. It's simple jQuery without any options on the datepicker.

Any clue as to why that would happen?

Let me know what I can post to help find a solution.

Thanks!

The model I am trying to post back:

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; }
}

The form I am using:

@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>
}

Method I am posting to:

[HttpPost]
    public ActionResult Generate(Report model)
    {
        try
        {
            MembershipUser cur开发者_如何学CrentUser = 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");
        }
    }

The jQuery looks like this:

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


Check that the datepicker version on the server is current and running bug-free. Also double check your form data before it gets posted - make sure the date fields have values:

$(document).ready(function () {

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

});
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜