![](/img/trans.png)
[英]An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters`
[英]An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. What to do?
public ActionResult Applicant(int JobPostId)
{
List<JobSeeker> jobSeekers = new List<JobSeeker>();
var ApplicationList = db.JobApplications.Where(x => x.JobPostId == JobPostId).ToList();
foreach(JobApplication app in ApplicationList)
{
jobSeekers.Add(db.Users.OfType<JobSeeker>().Single(x => x.Id == app.JobSeekerId));
}
// var JobseekerForJobPost = db.Users.OfType<JobSeeker>().Where(x => x.JobPostsAppliedFor.Any(y => y.JobPostID == JobPostId)).ToList();
return View(jobSeekers);
}
@Html.ActionLink("View Applicants", "Applicant", new { id = item.JobPostID }) |
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
我不知道為什么它給我錯誤。
您的操作方法具有一個值類型參數(一個int
):
public ActionResult Applicant(int JobPostId)
但是您沒有為路線提供值:
Html.ActionLink("View Applicants", "Applicant", new { id = item.JobPostID })
該錯誤告訴您必須為該參數提供一個值,因為int
否則不能為null
。 如果您希望此值可能為null
,則使其可為空:
public ActionResult Applicant(int? JobPostId)
或者,如果不應為空,請為其提供一個值:
Html.ActionLink("View Applicants", "Applicant", new { JobPostID = item.JobPostID })
(從你在操作方法是價值的使用,它看起來像它不應該是null
的,但我想這是可能的,它可能是你的數據。)
旁注:根據C#約定,變量應為小寫:
public ActionResult Applicant(int jobPostId)
和:
Html.ActionLink("View Applicants", "Applicant", new { jobPostID = item.JobPostID })
只需設置您的參數
public ActionResult Applicant(int JobPostId)
可選的
public ActionResult Applicant(int? JobPostId)
在路由中,它被映射為可選,這就是為什么必須將其設置為可空的原因
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.