gpt4 book ai didi

c# - 先制作 Asp.Net 核心路由,然后再制作 React 路由

转载 作者:太空狗 更新时间:2023-10-30 00:47:48 27 4
gpt4 key购买 nike

我是 React 新手,但不是 asp.net Core 应用程序开发的新手。我正在尝试在 visual studio 中使用 asp.net core + react 模板创建一个 react 应用程序。我正在尝试首先执行 Asp.Net MVC 路由以调用具有 [Authorize] 属性的 Controller 操作,以确保用户已通过身份验证。我没有任何东西可以在 Asp.Net MVC View 中显示。一旦用户通过 asp.net mvc Controller 操作进行身份验证,我想立即重定向用户以响应默认路由。是否有任何特定的路由机制来实现这一点。

现在我的应用程序通过基于路由的 Controller 和 Action ,并在 Controller Action 定义的 View 处停止。我正在尝试了解如何重定向用户以立即使用 react 路线。我尝试使用 return redirecttoaction 和 returnredirecttoroute 但没有成功。

我的 Asp.Net Core MVC Action

[Authorize]
public ActionResult Index()
{
var IsAuthenticated = HttpContext.User.Identity.IsAuthenticated;
var UserName = "Guest";
if (IsAuthenticated)
{
UserName = HttpContext.User.Identity.Name;
}
TempData["userName"] = UserName;

//return View();
return Redirect("my react first page");
}

我试过 return Redirect("my react first page");

我的启动文件方法用于路由

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseSpaStaticFiles();
app.UseAuthentication();


//MVC Part. I am trying this to authorize as FIRST step
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=DataAccess}/{action=Index}/{id?}");
});

// React part I am trying this to be called once Authentication is done in controller action. Trying to call this as a SECOND step

app.UseSpa(spa =>
{
spa.Options.SourcePath = "ClientApp";

if (env.IsDevelopment())
{
spa.UseReactDevelopmentServer(npmScript: "start");
}
});
}

如果我进行重定向并强制使用 react 路线,是否会出现缺少 react 路线功能的问题?如果我进行重定向,我看到这个 spa.UseReactDevelopmentServer(npmScript: "start"); 花费更多时间显示超时。任何可以将用户重定向到 Controller 操作的解决方案来完成所有授权并使用 React 默认路由机制?

是否有任何选项可以先运行 react 服务器并进行路由,因为启动服务器需要更多时间导致超时。

注意:我使用 Create-React-App 来创建我的应用。

最佳答案

不要为两者设置相同的路由,让服务器找到非 React View ,并让 React 拥有自己的路由和 View /模板

关于c# - 先制作 Asp.Net 核心路由,然后再制作 React 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55115245/

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