【发布时间】:2019-07-11 21:36:30
【问题描述】:
我有一个 HttpPost 控制器,我试图用它从视图中获取数据并将模型数据存储到我的本地 mvc 数据库中。虽然当我测试表单(有 4 个输入供用户输入),提交它然后检查数据库时,只有 School.Date 保存到表中,其他 3 个变量为空(即使我在以及 School.Date)。
我的学校模型:
namespace BookingSys.Models
{
public class School
{
public DateTime Date { get; set; }
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public int PhoneNumber { get; set; }
}
}
我的预订视图控制器:
[HttpGet]
public ActionResult Booking()
{
var model = db.Dates.ToList();
return View(model);
}
[HttpPost]
public ActionResult Booking(School model)
{
db.Schools.Add(model);
db.SaveChanges();
return RedirectToAction("Booking");
}
我的预订视图:
@model List<BookingSys.Models.Datepicker>
@{
ViewBag.Title = "Booking";
}
<h2>School Bookings</h2>
<form asp-controller="School" asp-action="Booking" method="post">
<br />
<div>
<label for="Date">Choose Date:</label>
<input asp-for="School.Date" id="txtDate" name="Date" />
</div>
<br />
<div>
<label for="Name">School Name:</label>
<input asp-for="School.Name" id="txtName" name="Name: " />
</div>
<br />
<div>
<label for="Email">Email:</label>
<input asp-for="School.Email" id="txtEmail" name="Email: " />
</div>
<br />
<div>
<label for="Phone">Phone Number:</label>
<input asp-for="School.PhoneNumber" id="txtPhone" name="Phone Number:
" />
</div>
<br />
<input type="submit" value="Submit" class="submit" />
</form>
<link href="~/Content/themes/base/jquery-ui.min.css" rel="stylesheet" />
// jQuery UI Datepicker
@section scripts {
<script src="~/Scripts/jquery-ui-1.12.1.min.js"></script>
<script>
jQuery(function () {
var enableDays = ['@Html.Raw(string.Join("','",
Model.Select(d => d.Date.ToString("dd-MM-yyyy"))))'];
console.log(enableDays);
function enableAllTheseDays(date) {
var sdate = $.datepicker.formatDate('dd-mm-yy', date)
console.log(sdate)
if ($.inArray(sdate, enableDays) != -1) {
return [true];
}
return [false];
}
$("#txtDate").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>
这就是数据库上下文的样子;日期保存没问题,但姓名、电子邮件和电话号码由于某种原因没有保存。有人知道为什么吗?
干杯
【问题讨论】:
-
不要使用号码来存储电话号码。它不会考虑某些情况,例如是否有前导零或特别长的数字。
-
@cost 谢谢伙计,我应该用什么代替?
-
将其存储为字符串,varchar 应该没问题,除非您出于某种原因希望使用它存储 unicode 字符,然后使用 nvarchar。您需要确保一致地处理存储/加载数字,因为人们使用许多常见的格式。喜欢 () 或 - 或只是数字。如果您以一致的格式存储它们,您可能会更轻松。不过,如果您只是在屏幕上显示它,那么这一点就不那么重要了。
标签: c# html asp.net asp.net-mvc