2

这是示例代码。在加载时,我可以看到 dateofbirth 更改为 08-06-1990,但在单击文本框时未显示 datepicker。layout.cshtml 包含以下内容

<script src="~/Scripts/jquery-1.7.1.js"></script>
<script src="~/Scripts/jquery-ui-1.8.20.js"></script>  

我可以看到它们已加载到 firebug 中。我已经删除了 EditorFor,而是仅用于测试。任何的想法。

@model SMS.Model.Student

@{
    ViewBag.Title = "Edit";
}

<script type="text/javascript">
    $(document).ready(function(){
        $('#DateofBirth').val("08-06-1990");
        $('#DateofBirth').datepicker();
    });
</script>


<h2>Edit</h2>

@using (Html.BeginForm())
{
    @Html.ValidationSummary(true)

    <fieldset>
        <legend>Student</legend>

        @Html.HiddenFor(model => model.Id)

        <div class="editor-label">
            @Html.LabelFor(model => model.RegistrationNo)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.RegistrationNo)
            @Html.ValidationMessageFor(model => model.RegistrationNo)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.DateofBirth)
        </div>

        <input  id="DateofBirth" value="07-06-1990" />

        <p>
            <input  type="submit" value="Save" />
        </p>
    </fieldset>
}

<div>
    @Html.ActionLink("Back to List", "Index")
</div>

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}
4

1 回答 1

2

现在可以了。我注意到我的 layout.cshtml 有

 @Scripts.Render("~/bundles/jquery")
 @RenderSection("scripts", required: false)

在正文部分,我使用两次加载 jquery 文件来明确引用 jquery 和 jquery ui,从而导致此问题。我从标题中删除了这个

<script src="~/Scripts/jquery-1.7.1.js"></script>
<script src="~/Scripts/jquery-ui-1.8.20.js"></script>

并感动

@Scripts.Render("~/bundles/jquery")

到标题并将jqueryui添加到标题中。它完美地工作。

@Scripts.Render("~/bundles/jqueryui")
于 2012-09-08T17:07:10.377 回答