如何在ASP.NET Core中默认添加URL参数

7

我正在开发一个项目,需要从应用程序启动时的URL字符串中访问Windows用户名。我正在尝试在应用程序启动时将“?windowsusername=name”添加到URL中。如果将其重定向到另一个操作,则会影响我的路由。是否有一种方法可以在启动时添加它?我从Startup.cs文件传递它,并且我知道它被传递了,因为我可以在Razor中引用它。但是,它并没有被添加到URL字符串中。以下是我在Startup.cs文件中尝试过的内容:

app.UseStaticFiles();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller}/{windowsUsername}",
                    defaults: new { controller = "Home", action = "Index", windowsUsername = "name" });
            });
1个回答

4
您应该更改您的路由路径如下:
 app.UseMvc(routes =>
 {
     routes.MapRoute(
         name: "default",
         template: "{controller}/{action}/{id?}",
         defaults: new { controller = "Home", action = "Index" });
 }

然后在操作中,您可以从 id 中访问用户名。

public ActionResult YourActionNameGoesHere(string id)
{

}

如果您访问 ControllerName/YourActionName/name,那么id的值将为name

现在我已经完成了这个,但是在加载位于wwwroot/scripts文件夹中的脚本时出现了404错误。我应该使用什么路径才能进入wwwroot文件夹? - Brandon
Mvc路由与静态文件无关。 - Mohsen Esmailpour

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接