【发布时间】:2013-04-18 23:20:58
【问题描述】:
我需要通过“CourseID”(一种 int 类型)在数据库中搜索“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”类型,则不会出现此错误。 非常感谢您的帮助!
【问题讨论】:
-
你为 url 使用的路由是什么?如果您使用的是默认控制器路由,那就是问题。
-
您正在发布,而不是获取。 POST 方法是什么样的。 Fiddler/debugger 是你的朋友。
-
感谢您的调查!我能够找出我的问题,并且搜索可以按我的需要工作。
标签: c# asp.net-mvc search int