int型の「CourseID」でデータベースの「Courses」を検索する必要があります。「CourseID」というテキスト フィールドが 1 つだけある単純な検索ビュー フォームがあります。
<% 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)' の null 非許容型 'System.Int32' のパラメーター 'courseID' の null エントリが含まれています。パラメーターをオプションにするには、その型を参照型または Nullable 型にする必要があります。パラメータ名: パラメータ
コードのどこが間違っているかを理解するのを手伝ってください。パラメータを「int」型から「string」型に変更すると、このエラーは発生しません。ご助力ありがとうございます!