我需要通过 int 类型的“CourseID”在数据库中搜索“Courses”。我有一个简单的搜索视图表单,它只有一个文本字段“CourseID”:
<% using (Html.BeginForm())
{ %>
<%= Html.AntiForgeryToken() %>
<fieldset>
<legend> Search By Course ID#:</legend>
<label for="CourseID">Enter Course ID#:</label>
<%= Html.TextBox("CourseID", Model.CourseID) %>
<%= Html.ValidationMessage("CourseID", "*") %>
</fieldset>
<p>
<input type="submit" value="Submit" />
</p>
<% }%>
在 Controller 类中,我有一个 SearchCourse 操作方法:
// GET: /SearchCourse
[Authorize(Roles = "Administrator")]
public ActionResult SearchCourse(int courseID)
{
return View(new SearchCourse(
new List<Courses>().AsQueryable(), courseID));
}
//
当我运行应用程序时,我收到一条错误消息:
“/”应用程序中的服务器错误。参数字典包含“Certifications.Controllers.SearchCourseController”中方法“System.Web.Mvc.ActionResult SearchCourse(Int32)”的不可为空类型“System.Int32”的参数“courseID”的空条目。要使参数可选,其类型应该是引用类型或 Nullable 类型。参数名称:参数
请帮助我理解代码中有什么问题。如果我将参数从“int”类型更改为“string”类型,则不会出现此错误。非常感谢您的帮助!