如何更正路由以解决 ajax .load() 的问题
我修改了到我的空间控制器的路线,使它看起来像这样
routes.MapRoute(
name: "SpaceCleanRoute",
url: "Space/{id}",
defaults: new { controller = "Space", action = "Index" }
);
这样我就有了更清晰的路线,当用户想要查看空间时,URL 将如下所示
www.mysite/space/12345
我现在遇到的问题是当我的 JS 文件像这样调用 .load() 时,其中 spaceoverview 是我的操作
$("#partialPageContainer").load('/Space/SpaceOverview', function (response, status, xhr) {
alert("Load was performed.");
});
我收到一条错误消息
参数字典包含“YogaBandy2017.Controllers.SpaceController”中方法“System.Web.Mvc.ActionResult Index(Int32)”的不可空类型“System.Int32”的参数“id”的空条目。可选参数必须是引用类型、可空类型或声明为可选参数。参数名称:参数
所以我必须在这样的 url 后面加上一个 id,这不是我想要的,或者对我来说似乎不合适
我该如何解决这个问题,或者这只是路由的工作方式?我对使用 ASP.Net 的 mvc 路由有点陌生
$("#partialPageContainer").load('/Space/SpaceOverview/1', function (response, status, xhr) {
alert("Load was performed.");
});
已更新 - 我想现在我将只使用 '/space/actionname/1' 连接到每个操作,直到找到更好的解决方案。