我在Flask中编写了一个非常简单的Web应用程序,并将其移植到ASP.NET Framework。所有功能都在JavaScript和HTML中,因此框架只需充当脚手架即可。我已经几乎将所有内容移植完成,除了似乎存在路由问题。我的网站期望在URL后附加一个字符串令牌变量,如下所示:
www.mysite.com/token-string
。对于开发,URL为localhost:*****/string-token
,默认显示我的Index.cshtml
页面。
当我不带令牌传递URL时,它可以正常工作并加载我的主页。但是,当我尝试使用令牌时,会得到404错误。我想它将令牌识别为路由并尝试导航到它?我不知道如何修复它。以下是我代码的重要部分:
HomeController.cs:
public class HomeController : Controller
{
public ActionResult Index(string token)
{
return View();
}
}
RouteConfig.cs: 注意:我没有进行更改,不确定该怎么处理。
public class RouteConfig
{
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 }
);
}
}
在传递token时,以它现在的方式传递是非常重要的,而不是作为一个?
查询参数或类似的其他方式。此外,C#索引视图实际上不需要对token进行任何操作-它由JavaScript提取。
如果有任何建议请告诉我们,谢谢!
www.mysite.com/?token='token-string'
来使用默认路由的 token 字符串,因此定义一个路由,该路由期望token
参数 (url: "{controller}/{action}/{token}"
),其中token
是必需参数。 - Tetsuya Yamamotowww.mysite.com/string-token
的格式呈现。 - Jack Parkinson[Route("~/{token?}")]
,这将导致www.mysite.com/string-token
的路由。或者定义Index操作方法:url: "{token}"
(默认路由为controller =“Home”,action =“Index”,token = UrlParameter.Optional
)。 - Tetsuya Yamamoto