在 C# 中创建错误
本文关键字:错误 创建 | 更新日期: 2023-09-27 17:56:11
我是一名学生,对C#编程还是新手。目前,我正在与MVC一起做一个项目,它有一个时间表页面。我需要创建一个时间表,但这就是错误出现的地方。我有一个日期选择器功能,如果我在创建之日起 4 天内选择任何内容,我可以创建,但如果选择其他时间,我无法创建。
错误:值不能为空。参数:源
我的计划创建页面
@model Sec.Models.Schedule
@using Sec.Models
@{
ViewBag.Title = "Create";
Layout = "~/Views/Shared/_LayoutPage.cshtml";
Employee currentEmp = null;
if (ViewBag.emp != null)
{
currentEmp = (Employee)ViewBag.emp;
}
//Employee List
List<Employee> dbsEmployee = ViewBag.Employee;
List<SelectListItem> lstEmployee =
(from b in dbsEmployee
orderby b.Id
select new SelectListItem()
{ Text = b.Name, Value = b.Id.ToString() }).ToList<SelectListItem>();
lstEmployee.Insert(0, new SelectListItem() { Text = "-- Select --", Value = "" });
//Site List
List<Site> dbsSite = ViewBag.Site;
List<SelectListItem> lstsite =
(from b in dbsSite
orderby b.Id
select new SelectListItem()
{ Text = b.Id.ToString() + " -- " + b.Pod + b.Level + b.Gender, Value = b.Id.ToString() }).ToList<SelectListItem>();
lstsite.Insert(0, new SelectListItem() { Text = "-- Select --", Value = "" });
}
@if ((currentEmp != null) && (currentEmp.isAdmin == true))
{
<script>
$('#datetimepicker1').data("DateTimePicker").FUNCTION()
</script>
<h2>Create</h2>
using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Schedule</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.Id, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Id, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Id, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Employee_Id, "Employee_Id", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("Employee_Id", lstEmployee, htmlAttributes: new { @id = "DrpEmployeeId", @class = "form-control" })
@Html.ValidationMessageFor(model => model.Employee_Id, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Site_Id, "Site_Id", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("Site_Id", lstsite, htmlAttributes: new { @id = "DrpSiteId", @class = "form-control" })
@Html.ValidationMessageFor(model => model.Site_Id, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Date, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="row">
<div class='col-sm-6'>
<div class='input-group date' id='datetimepicker1'>
@Html.TextBoxFor(model => model.Date, new { @class = "form-control datepicker", placeholder = "Press the button to enter date and time" })
@Html.ValidationMessageFor(model => model.Date)
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
<script type="text/javascript">
$(function () {
$('#datetimepicker1').datetimepicker();
});
</script>
</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>
}
我的后端
using (secDBEntities3 dbc = new secDBEntities3())
{
DbSet<Employee> dbe = dbc.Employees;
ViewBag.Employee = dbe.ToList();
DbSet<Site> dbs = dbc.Sites;
ViewBag.Site = dbs.ToList();
}
return View();
HTTP帖子
public ActionResult Create([Bind(Include = "Id,Site_Id,Employee_Id,Date")] Schedule schedule)
{
if (ModelState.IsValid)
{
var s = db.Schedules.Create();
s.Id = schedule.Id;
s.Site_Id = schedule.Site_Id;
s.Employee_Id = schedule.Employee_Id;
s.Date = schedule.Date;
db.Schedules.Add(schedule);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(schedule);
}
堆栈跟踪
[ArgumentNullException: Value cannot be null.
Parameter name: source]
System.Linq.OrderedEnumerable`2..ctor(IEnumerable`1 source, Func`2 keySelector, IComparer`1 comparer, Boolean descending) +4367342
System.Linq.Enumerable.OrderBy(IEnumerable`1 source, Func`2 keySelector) +62
ASP._Page_Views_Schedules_Create_cshtml.Execute() in D:'Jncr'Jncrwa'Jncrwa'Views'Schedules'Create.cshtml:13
System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +198
System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +105
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +78
System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) +235
System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer) +107
System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +291
System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) +13
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +56
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +420
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +52
System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +173
System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +100
System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27
System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +13
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +36
System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) +12
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +22
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +26
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10
System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +21
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +28
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9744261
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155
我搜索了此错误,但找不到问题的解决方案。
代码实际上没有错误。此错误与日期时间选择器有关,因为我实际上正在测试服务器。为了修复,这已经放置了一个尝试捕获,以确保它不会使系统崩溃。