【问题标题】:MVC 4 edit route parameter in controllerMVC 4 在控制器中编辑路由参数
【发布时间】:2012-12-13 00:42:38
【问题描述】:

我遇到了一个小问题,希望有人能帮助我。

在 ASP.net MVC 4 (C#) 上,我需要能够从我的控制器编辑我的路由参数。

例如请求的url是

MyController/MyAction/param1/param2

现在来自MyAction 我需要编辑返回的 url 以便它显示

MyController/MyAction/Modifiedparam1/Modifiedparam2 

这样做的目的是将我从数据库中检索到的参数转换为语言更改。

【问题讨论】:

    标签: c# url-rewriting asp.net-mvc-4 asp.net-mvc-routing


    【解决方案1】:

    请为此使用重定向结果(在某些情况下为MyAction):

    return RedirectToAction("MyAction", { param1Name = Modifiedparam1, param2Name = Modifiedparam2 };
    

    基本上你不能在控制器中修改 url。 Urls 是浏览器发送来调用某些操作的东西。您可能只是说浏览器将用户重定向到另一个网址。

    【讨论】:

    • 这是我目前正在做的,但使用这种技术我需要再次从我的数据库中重新加载数据。
    • 您对性能有任何问题吗?这种手术的频率如何?您可以使用缓存。此外,如果用户在单击您的网站链接后遇到这种情况,那么您可能需要更新链接以修改参数而不是当前的(如果可以的话)。
    • 在某种程度上,如果您认为它仅在您更改网站的语言时才会这样做,我猜双重重新加载不会经常发生。这些页面的所有链接都是根据页面设置语言动态加载的。我说这证实了我已经做过的事情。干杯
    【解决方案2】:

    不要与框架争吵。它迟早会反击。而是遵循 mvc 原则,从控制器操作或过滤器/拦截器重定向来这样做。

    【讨论】:

      猜你喜欢
      • 2018-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-04
      • 2013-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多