gpt4 book ai didi

javascript - 使用空白 MVC 路由和 HttpGet 请求 Controller

转载 作者:行者123 更新时间:2023-11-28 03:52:33 25 4
gpt4 key购买 nike

更改一些路由后,我在从 javascript 访问端点时遇到一些问题。我有两个 Controller ,并且我正在尝试从仅在其 url 中传递变量的 Controller 访问端点。

RouteConfig.cs 文件:

        routes.MapRoute(
name: "Home Page",
url: "",
defaults: new { controller = "HomePage", action = "Home" }
);

routes.MapRoute(
name: "Example Page",
url: "{exampleId}",
defaults: new { controller = "ExamplePage", action = "Index"}
);

HomePageController 将被 mysite.com 攻击。

ExamplePageController 将被 mysite.com/value 命中,它根据 exampleId 值生成页​​面。

我现在需要做的就是点击我的ExamplePageController中的端点:

    [HttpGet]
public ActionResult myEndpoint(string exampleId) {
var result = _exampleProvider.exampleFunction(exampleId);

return result;
}

那么,如果我从 javascript 访问此端点,Url 会是什么样子?以下是我尝试过的一些方法:

www.mysite.com/ExamplePage/myEndpoint?exampleId=value

www.mysite.com/myEndpoint?exampleId=值

最上面的 Url 是我以前使用的,但是更改 RouteConfig 中路由的 url 值阻止了端点被命中。

这里有什么想法吗?谢谢!

最佳答案

我发现了这个问题——看来Url需要是“{exampleId}/{action}”,并且主页需要位于路由列表的底部。

url 中的操作参数是函数名称,因此当从 javascript 中点击时,它看起来像www.mysite.com/value/myEndpoint?exampleId=value

我从来不允许方法名称成为路由中的参数。

如果有其他 javascript 调用该 Controller ,主页路由还应该在路由 Url 中包含操作参数。它应该看起来像这样:“{action}”

关于javascript - 使用空白 MVC 路由和 HttpGet 请求 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47858910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com