我正在开展一个项目,我需要从应用启动的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" });
});
答案 0 :(得分:2)
您应该将路线更改为以下路线:
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
。