windows.location = url中断了MVC绑定

时间:2018-12-05 22:59:55

标签: javascript asp.net-core asp.net-core-mvc

我正在使用javascript函数,该函数应在获取某些数据后将用户重定向到新页面。

我的示例说明了这个想法:

example(True)

在我的控制器中,我具有以下方法:

var userId = getUserId(e);
var url = baseUrl + "/EditUserRoles/" + userId;
window.location.href = url;

如果在方法中放置一个断点,则会执行该断点,但是无论javascript上的先前值如何,userId始终为0

我在这里做什么错了?

1 个答案:

答案 0 :(得分:1)

这会发生,因为您的默认路由正在等待ID而不是userId

routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

3个选项,仅选择一个:

1-在MapRoute中将ID更改为userId(我不推荐这样做)

2-在javascript中添加userId网址参数

var url = baseUrl + "/EditUserRoles/?userId=" + userId;

3-在控制器中将参数名称更改为id

public IActionResult EditUserRoles(int id)

更多信息:https://docs.microsoft.com/en-us/aspnet/mvc/overview/older-versions-1/controllers-and-routing/asp-net-mvc-routing-overview-cs