6

私は午後中ずっとこれを行う方法を理解しようとしてきましたが、DatePicker を私のサイトで動作させる方法を把握できていないようです。

また、エントリが投稿される日付だけに関心があるため、可能であれば、DateTime の Time 部分を削除したいと考えています。

これまでのコードを以下に含めました。これまでに試みたすべてのものをほとんど削除したので、最初に戻ります。_Layout.cshtml の上部にある JQuery ファイルを参照しましたが、これは正しいと思います。

私は Web で多くのガイドを見てきましたが、読み続けるつもりですが、それらを十分に理解するのに苦労しました。

これらの行を _Layout.cshtml の先頭に追加しました (JQuery フォルダーも解凍して、以下で参照されている場所にコピーしました)。

<link href="@Url.Content("~/Content/jquery-ui/redmond/jquery-ui-1.8.21.custom.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.8.11.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/ui/minified/jquery.ui.core.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/ui/minified/jquery.ui.datepicker.min.js")" type="text/javascript"></script>

私のビューコードは次のようになります。

@model dale_harrison.Models.News

@{
    ViewBag.Title = "Create";
}

<h2>Create</h2>

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript">    </script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"     type="text/javascript"></script>

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>News</legend>

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

        <div class="editor-label">
            @Html.LabelFor(model => model.News_Date)
        </div>
        <div class="editor-field">
            @*@Html.EditorFor(model => model.News_Date)*@
            @Html.EditorFor(model => model.News_Date, new object{ id = "news_date" } )
            @Html.ValidationMessageFor(model => model.News_Date)
        </div>

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

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

<script type="text/javascript">
    $(document).ready(function () {
    $("#news_date").datepicker({ dateFormat: 'dd/mm/yy' });
    });
</script>

私のモデルはここにあります:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;

namespace dale_harrison.Models
{
    public class News
    {
        public int ID { get; set; }
        public string News_Entry { get; set; } 
        public DateTime News_Date { get; set; }
    }

    public class NewsDBContext : DbContext
    {
        public DbSet<News> News_Entries { get; set; }
    }
}

助けてくれた人に前もって感謝します

4

4 に答える 4

1

フォルダーで DateTime 型のテンプレートを作成する必要があるため、MVCViews/Shared/EditorTemplatesを使用するたび@Html.EditorForに、テンプレートで定義したものは何でも表示されます

于 2012-06-22T16:26:56.857 に答える
0

「2007 年 8 月 11 日 00:00:00」ではなく「2007 年 8 月 11 日」と表示されるように、テキスト ボックスの時刻を非表示にすることもできます。

これを行うには、以下のように "[DataType(DataType.Date)]" をニュース クラスに追加します。

public class News
{
    public int ID { get; set; }
    public string News_Entry { get; set; } 
    [DataType(DataType.Date)]
    public DateTime News_Date { get; set; }
}
于 2012-09-18T08:37:17.307 に答える
0

EditorFor は余分な属性を無視します。TextBoxFor を使用するか、EditorFor テンプレートを記述します...

于 2014-03-25T10:32:34.703 に答える