c# - MVC4 _Layout.cshtml 脚本包

标签 c# asp.net-mvc partial-views asp.net-mvc-4 bundles

在我的 _Layout.cshtml 页面的头部部分,我有这行代码...

<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Scripts/js")"></script>

我检查了脚本目录,jquery-ui 就在那里。我是 MVC 的新手,尤其是 MVC4。我曾与 3 合作过,但我不相信与我记得或至少使用过的 Bundles 有任何关系。据我所知,这将所有脚本捆绑成一种紧密键入的文本格式,去掉了空格和诸如此类的东西。所以我假设 jquery-ui 将被添加到每个页面,因为它是一个共享页面,就像 Web 窗体中的母版页。

现在在我的 Index.cshtml 文件中,它使用我在顶部的共享布局页面。

$(function () {
    $('#DateOfBirth').datepicker();
});

我也在我的 Index.cshtml 文件中添加了带有此代码的部分 View 。

@Html.Partial("_SignUp", Model)

部分 View 包含我要将其添加到的字段。不幸的是,它没有将日期选择器添加到 type=text 的输入字段,是的,该字段的 id="#DateOfBirth"。怎么回事?

编辑:我确实遇到了这个错误——“Uncaught TypeError: Object [object Object] has no method 'datepicker'

最佳答案

我看不出您的代码有任何问题,而且我无法重现该问题(ASP.NET MVC 4 Beta)。以下对我来说很好用:

  1. 使用 Internet 模板创建一个新的 ASP.NET MVC 4 项目
  2. 添加 View 模型:

    public class MyViewModel
    {
        public DateTime DateOfBirth { get; set; }
    }
    
  3. 家庭 Controller :

    public class HomeController : Controller
    {
         public ActionResult Index()
         {
            return View(new MyViewModel
            {
                DateOfBirth = DateTime.Now
            });
        }
    }
    
  4. Index.cshtml:

    @model MyViewModel
    
    <script type="text/javascript">
    $(function () {
        $('#DateOfBirth').datepicker();
    });
    </script>
    
    @Html.Partial("_SignUp", Model)
    
  5. _SignUp.cshtml

    @model MyViewModel
    @Html.EditorFor(x => x.DateOfBirth)
    
  6. 结果:

enter image description here

所以我想现在问题变成了,你做了哪些不同的事情?

关于c# - MVC4 _Layout.cshtml 脚本包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10694325/

相关文章:

c# - 如何获取当前 ItemsControl 项的索引?

c# - 如何在Asp核心Web应用(MVC)上创建和使用Docker卷

asp.net-mvc - 注入(inject) AutoMapper 实例

c# - 在 Validation Context 中获取子属性中的父对象属性值

c# - MVC 3 C# - 部署和 MYSQL 数据库

c# - 将变量从cs传递到javascript

asp.net - 哪里可以获得 MVC4 的源代码

asp.net - 从 JQuery 加载部分 View 未显示在 MVC 中

javascript - 网站 : Same universal menu on different pages

asp.net-mvc-3 - 如何在包含 Ajax.beginForm 的部分 View 中使用 MVC3 的内置验证