C# 在控制器MVC上定义路由属性时,如何重定向新URL?
我有一个控制器定义为C# 在控制器MVC上定义路由属性时,如何重定向新URL?,c#,asp.net-mvc,model-view-controller,C#,Asp.net Mvc,Model View Controller,我有一个控制器定义为 [路由(somecontroller1/someaction1{someid}] 当我尝试将它重定向到另一个视图时 重定向(“somecontroller2/someaction2{someid}”) 我的网址是 somecontroller1/someaction1{someid}/somecontroller2/someaction2{someid} 所以我的问题是,我怎样才能重定向到 somecontroller2/someaction2{someid} 你可以看到下
[路由(somecontroller1/someaction1{someid}]
当我尝试将它重定向到另一个视图时
重定向(“somecontroller2/someaction2{someid}”)
我的网址是
somecontroller1/someaction1{someid}/somecontroller2/someaction2{someid}
所以我的问题是,我怎样才能重定向到
somecontroller2/someaction2{someid}
你可以看到下面的代码
[HttpPost]
[Route("someController1/someaction1/{someid}")]
public ActionResult CreateComment(Comment comment, int someid)
{
*//do something*
return Redirect("someController2/someAction2/" + someid);
}
问题是,您忘记了重定向中的前导“/”。 如果重定向开始时没有“/”,asp.net将尝试重定向到调用控制器内的给定URL 添加前导“/”并且重定向是绝对的:
return Redirect("/someController2/someAction2/" + someid);
或者,您可以直接重定向到控制器:
return RedirectToAction("SomeAction2", "SomeController2", new{id = someid});
了解ASP.NET尝试路由请求时发生的情况非常重要。有几种方法可以更改/定义路由。以下是一些您可以检查的链接:
使用重定向到操作方法
return RedirectToAction("SomeAction2", "SomeController2", new{id = someid});
这会将页面重定向到所需操作的视图。Hi Partluka。欢迎使用SO。请在问题中提供您的代码,否则几乎无法理解发生了什么。THXtry
return RedirectToAction(“someAction2”,“someController2”)