asp.net core 7.0 RedirectToAction方法将路由值作为post发送

gopyfrb3  于 2023-10-21  发布在  .NET
关注(0)|答案(1)|浏览(155)

在我的asp.net core 7.0 web应用程序中,我一直在使用RedirectToAction(string? actionName, string? controllerName, object? routeValues),它很好,但它发送的路由值为Get,有没有办法让它发送的值为Post
我尝试使用RedirectToRoute(),但它没有任何actionName或actionerName init。

gstyhher

gstyhher1#

如果它们都在同一个控制器中,则可以直接调用它。
下面是一个demo,你可以参考一下:

public IActionResult Index()
{
    //return View();
    string UserName = "aa";
    int Id = 1;
    return Postdata(UserName,Id);
}

[HttpPost]
public IActionResult Postdata(string UserName,int Id)
{
    return View();
}

结果:

**更新:**在不同的控制器中,可以使用httpClient传递数据:

public async Task<IActionResult> Index()
{           
    var model=new User() {Name = "aa",Id = 1};
    JsonContent content = JsonContent.Create(model);
    HttpClient httpClient = new HttpClient();
    var response = await httpClient.PostAsync("https://localhost:7208/Another/Postdata", content);
    return View();
    
}

AnotherController:

public class AnotherController : Controller
{
    
    [HttpPost]
    public IActionResult Postdata([FromBody] User user)
    {
        return View();
    }
}

使用者:

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
}

结果:

相关问题