Значение по умолчанию DateTime ASP. net core - PullRequest
0 голосов
/ 08 января 2020

Для студенческого проекта я хочу добавить значение по умолчанию - в поле даты (ReleaseDate), но при этом еще есть календарь и возможность выбора даты.

Here is a screenshot of what it looks like

Мой код в Models / Post.cs:

[Display(Name = "Release Date")]
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode =true, DataFormatString = "{0: yyyy-MM-dd}")]

public System.DateTime ReleaseDate { get; set; }

И в View / Posts / Create.cs html:

<div class="form-group">
    <label asp-for="ReleaseDate" class="control-label"></label>
    <input asp-for="ReleaseDate" class="form-control" />
    <span asp-validation-for="ReleaseDate" class="text-danger"></span>
</div>

Я пробую timur, но Controllers / PostController.cs

См. Только одно определение индекса:

 public async Task<IActionResult> Index()
        {
            return View(await _context.Movie.ToListAsync());
        }

И ваш код:

public IActionResult Index()
{
    var model = new Post()
    {
        ReleaseDate = DateTime.Today
    };

    return View("View", model);
}

Я пытаюсь поставить так Но есть ошибка (на https://localhost: номера / сообщения

Просмотров / сообщений / Create.cs html

@model Portal.Models.Post

@{
    ViewData["Title"] = "Create -";
}


<h1>Create</h1>

<h4>Post</h4>
<hr />
<div class="row">
    <div class="col-md-4">
        <form asp-action="Create">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="Title" class="control-label"></label>
                <input asp-for="Title" class="form-control" />
                <span asp-validation-for="Title" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="ReleaseDate" class="control-label"></label>
                <input asp-for="ReleaseDate" class="form-control" />
                <span asp-validation-for="ReleaseDate" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="Description" class="control-label"></label>
                <input asp-for="Description" class="form-control" />
                <span asp-validation-for="Description" class="text-danger"></span>
            </div>
            <div class="form-group">
                <input type="submit" value="Create" class="btn btn-primary" />
            </div>
        </form>
    </div>
</div>

<div>
    <a asp-action="Index">Back to List</a>
</div>

@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}

и просмотров / сообщений / Index.cs html

@model IEnumerable<Portal.Models.Post>

@{
    ViewData["Title"] = "Job Rice -";
}

<!-- Image -->
<section>
    <div class="container">
        <div class="full-width-image">
            <img src="img/background.jpg" alt="">
        </div>
    </div>
</section>





<div class="text-center">
<h1><a asp-action="Create">Create new offer</a></h1>
    </div>


        @foreach (var item in Model)
        {
<section>
    <div class="container">
        <!-- Heading -->
        <div class="my-5"> </div>
        <!-- Grid row -->
        <div class="row">
            <!-- Grid column -->
            <div class="col-sm-12 sm-12">
                <!-- Card -->
                <div class="card">
                    <div class="card-header text-center colores">
                        <h4> <i class="fas fa-poll-h"></i> <a asp-action="Details" asp-route-id="@item.Id"> @Html.DisplayFor(modelItem => item.Title) </a></h4>
                    </div>
                    <!-- Card content -->
                    <form class="card-body">
                        <div class="row">
                            <div class="col-sm-12">
                                <div class="text-center"> @Html.DisplayFor(modelItem => item.Description)</div>
                                <div class="float-right"> @Html.DisplayFor(modelItem => item.ReleaseDate)</div>
                            </div>
                            <div>
                                <a asp-action="Edit" asp-route-id="@item.Id">Edit</a> 
                                <a asp-action="Delete" asp-route-id="@item.Id">Delete</a>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</section>
}

Ответы [ 2 ]

0 голосов
/ 02 мая 2020

Это должно создать значение по умолчанию:

public System.DateTime ReleaseDate { get; set; } = System.DateTime.Today;

или, если вам нужно время

public System.DateTime ReleaseDate { get; set; } = System.DateTime.Now;
0 голосов
/ 08 января 2020

Поскольку представления Razor по-прежнему позволяют писать html, вы можете попытаться определить свой вид как

        <div class="form-group">
            <label asp-for="ReleaseDate" class="control-label"></label>
            <input asp-for="ReleaseDate" class="form-control" value="@Model.ReleaseDate.ToString("yyyy-MM-dd")" />
            <span asp-validation-for="ReleaseDate" class="text-danger"></span>
        </div>

. Он должен отображать текущее значение модели в качестве отправной точки для ввода, конечно же, вам нужно определить один перед передачей его на представление:

public IActionResult Index()
{
    var model = new Post()
    {
        ReleaseDate = DateTime.Today
    };

    return View("View", model);
}
...