Asa*_*Sad 4 c# asp.net-mvc datetime date asp.net-core
对于学生项目,我想在日期字段(ReleaseDate)中添加默认值,但仍然有日历和选择日期的选项。

我在 Models/Post.cs 中的代码:
[Display(Name = "Release Date")]
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode =true, DataFormatString = "{0: yyyy-MM-dd}")]
public System.DateTime ReleaseDate { get; set; }
Run Code Online (Sandbox Code Playgroud)
在 View/Posts/Create.cshtml 中:
<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>
Run Code Online (Sandbox Code Playgroud)
我尝试 timur 但 Controllers/PostController.cs
只能看到索引的一个定义:
public async Task<IActionResult> Index()
{
return View(await _context.Movie.ToListAsync());
}
Run Code Online (Sandbox Code Playgroud)
还有你的代码:
public IActionResult Index()
{
var model = new Post()
{
ReleaseDate = DateTime.Today
};
return View("View", model);
}
Run Code Online (Sandbox Code Playgroud)
我尝试这样写 但是有一个错误(在 https://localhost:numbers/Posts
视图/帖子/Create.cshtml
@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");}
}
Run Code Online (Sandbox Code Playgroud)
和 Views/Posts/Index.cshtml
@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>
}
Run Code Online (Sandbox Code Playgroud)
小智 12
正如 Tieson T. 在他的评论中指出的那样,您必须将“value”属性添加到 razor 页面中的“input”标签中:
<input asp-for="ReleaseDate" class="form-control" value="@DateTime.Today.ToString("yyyy-MM-dd")" />
Run Code Online (Sandbox Code Playgroud)
当然,您可以将“DateTime.Today”替换为其他内容。
您的浏览器以不同的格式显示日期并不重要,您必须在 value 属性中使用此格式。我刚刚在 ASP.NET Core 3.1 Razor 应用程序中测试了它,它可以工作。