【发布时间】:2019-07-09 16:45:27
【问题描述】:
我目前正在开发一个 asp.net mvc 项目,该项目允许用户从日历中仅选择可用日期来预订特定服务。我目前有一个 Datepicker.cs 模型,它包含一个 DateTime Date 字段和一个 int Id 字段,并且我有一个 DbContext 类,我用它来保存和检索这些数据
namespace Calendar.Models
{
public class CalendarDb : DbContext
{
public DbSet<Datepicker> Dates { get; set; }
}
}
我在我的 Create.cshtml 页面上使用 jQuery UI Datepicker 向用户显示可用日期。目前日历显示 2 个硬编码的可用日期。
现在我的问题是,是否可以在 asp.net mvc 框架中使用 Datepickers Db 中 Date 列中的所有日期填充这个硬编码数组(甚至是列表等)?即我需要日历来显示数据库中的所有可用日期
任何帮助将不胜感激!
我的 Datepicker 模型:
namespace Calendar.Models
{
public class Datepicker
{
public DateTime DtmDate { get; set; }
public int Id { get; set; }
public int UserId { get; set; }
}
}
视图控制器:
[HttpGet]
public ActionResult Create()
{
var model = _db.Dates.ToList();
return View(model);
}
我的 Create.cshtml 视图:
@model Calendar.Models.Datepicker
@{
ViewBag.Title = "Create";
}
<h2>Create</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Datepicker</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.DtmDate, htmlAttributes: new { @class
= "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.DtmDate, new { htmlAttributes =
new { @class = "form-control1" } })
@Html.ValidationMessageFor(model => model.DtmDate, "", new {
@class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.UserId, htmlAttributes: new { @class =
"control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.UserId, new { htmlAttributes =
new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.UserId, "", new {
@class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
<link href="~/Content/themes/base/jquery-ui.min.css" rel="stylesheet" />
@section scripts {
<script src="~/Scripts/jquery-ui-1.12.1.min.js"></script>
<script>
jQuery(function(){
var enableDays = ["11-07-2019", "12-07-2019"];
function enableAllTheseDays(date) {
var sdate = $.datepicker.formatDate('dd-mm-yy', date)
console.log(sdate)
if ($.inArray(sdate, enableDays) != -1) {
return [true];
}
return [false];
}
$(".form-control1").datepicker({
dateFormat: "dd/MM/yy",
beforeShowDay: enableAllTheseDays
});
});
</script>
@Scripts.Render("~/bundles/jqueryval")
}
<style>
.my-class a {
background-color: #07ea69 !important;
background-image :none !important;
color: #ffffff !important;
}
</style>
【问题讨论】:
-
我不明白你卡在哪一部分。您似乎知道如何将数据从数据库中获取到您的应用程序中。您是否将其放入传递给视图的模型中?您知道如何从视图中的模型中获取值并在 JavaScript 中使用它们吗?您需要哪些具体部分的帮助?
-
是的,您可以将列表从代码传递并使用到视图中。其他明智的将该列表转换为 javascript 列表并使用它。
-
@Craig, "stackoverflow.com/questions/9480537/…" 帖子可能会有所帮助。
-
@mason 嗨,伙计,谢谢您的回复。是的,我将 Datepicker 模型传入视图(@model Calendar.Models.Datepicker)。至于获取视图中的值并利用它们,即将日期放入某个排序集合以供 Datepicker 使用,我不太确定如何实现。任何帮助将不胜感激
-
您定义了一个包含启用天数的 JSON 数组。现在这是硬编码的,但是您想使用模型中的值吗?您可以简单地使用 Razor 语法从模型中获取值并将它们插入到标记中,而不是硬编码值。
标签: c# asp.net asp.net-mvc