我正在用一个MVC系统替换用传统asp.net编写的网站
我们使用且无法轻易更改的第三方系统希望能够使用格式的网址
http://website url here /?searchtype = both& param1 = value1& param2 = value2
我需要将其重定向到
http://website url here / Home / FindByIdentifier?searchtype = both& param1 = value1& param2 = value2
我该怎么做?它的重定向行动?
如果这很复杂,那么现在可以在Azure中作为应用服务来托管系统吗?
它基本上是使第三方系统仍然运行的情况,好像没有任何改变
我的新应用程序使用C#MVC5和Razor视图
保
答案 0 :(得分:0)
这样的东西添加到您的家庭控制器
public ActionResult Here()
{
var url = $"Home/FindByIdentifier{Request.Url.Query}";
return Redirect(url);
}
答案 1 :(得分:0)
很抱歉,显然,路由规则会忽略get
个参数。我已经尝试将regex作为约束应用,它确实忽略了get
个参数。
我正在使用路由来正确地路由请求。如果有人知道如何使用get
参数执行此操作,请告知我们。
所以,即使我没有尝试重定向替代方案,我认为这是目前为止的最佳选择。
请在HomeController
上注意这一点:
public IActionResult Index()
{
if (Request.QueryString != null && !string.IsNullOrEmpty(Request.QueryString.Value) && System.Text.RegularExpressions.Regex.IsMatch(Request.QueryString.Value, @"^\?searchtype\=both(\&.+\=.+)*$"))
return Redirect($"/home/FindByIdentifier{Request.QueryString.Value}");
return View();
}
public IActionResult FindByIdentifier()
{
var getParameters = Request.QueryString.Value;//?searchtype=both¶m1=value1¶m2=value2
return View();
}