【发布时间】:2018-07-25 21:31:18
【问题描述】:
无论我如何格式化我的 URL,我都会得到一个空参数异常。我已经尝试了我现在能想到的所有方法。它正在工作,然后它就停止了。所以我恢复了我上次的更改,看看是否修复了它,但它没有。现在,即使在以前的(工作)副本中,它也不起作用。我也遇到了编译器错误,所以我清理了解决方案,重新构建,重新启动了我的机器(和 VS),但仍然没有。
这不是路由映射的问题。当我尝试搜索我的问题时,我只能找到这些。为了确定,我确实玩了很多次。
我收到以下错误消息:
参数字典包含参数“id”的空条目 方法的不可为空的类型“System.Guid” 'System.Web.Mvc.ActionResult ViewJobs(System.Guid)' 在 'MyProject.Controllers.RecruitingController'。可选参数 必须是引用类型、可空类型或声明为 可选参数。参数名称:参数
我的方法看起来像这样(很典型):
public class RecruitingController : Controller
{
public ActionResult ViewJobs(Guid id)
{
var ListView = RecruitingLogic.GetListView(id);
return View("ViewJobs", ListView);
}
}
注意:我尝试将其更改为可为空的 guid,但没有成功。老实说,我没想到会这样。我还尝试将动作移动到另一个控制器。那也没用。
注意 2:我确实观察到这是空的。这不是无效的错误消息。我还设置了动作/参数日志记录作为动作过滤器,因此我能够回顾并找到它停止工作的确切时间。您可以看到该操作接收非空值,然后 bam,它就停止了。
路线映射:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
在网址方面,我尝试了很多。然而,这些是为我工作的少数……直到他们停止了。
https://localhost:12345/recruiting/viewjobs/B77A156-622C-E811-80D4-005056865C51 https://localhost:12345/recruiting/viewjobs?id=B77A156-622C-E811-80D4-005056865C51 https://localhost:12345/recruiting/viewjobs/?id=B77A156-622C-E811-80D4-005056865C51
我现在很茫然。任何建议表示赞赏。
【问题讨论】:
标签: asp.net-mvc model-view-controller .net-4.6.1