【问题标题】:MVC4 and RoutingMVC4 和路由
【发布时间】:2013-04-02 06:17:22
【问题描述】:

我有一个调用 Web 服务并返回结果的控制器和视图。目前,它是我的默认控制器,称为 Home,它使用 Index 视图页面。

它正在工作。我可以发布数据,然后在刷新的屏幕上放一些东西。它重新加载相同的视图。

现在,一旦我提交并得到很好的回复,我想加载不同的控制器/视图。

我的路线现在看起来像这样:

    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        "Home",
        "{lang}",
        new { controller = "Home", action = "Index", lang="English" });

    routes.MapRoute(
        "Location",
        "{lang}",
        new { controller = "Location", action = "Index", lang = "English" });

我创建了一个名为 Location 的受控对象,它只有这个:

 //LocationController 
 public class LocationController : Controller
 {
    public ActionResult Index()
    {
       return View();
    }
 }

在我的家庭控制器中,我正在执行逻辑,然后尝试加载新页面。

        [HttpPost]
        public ActionResult Index(HomeModel model)
        {
            var proxy = new Proxy();
            var r = proxy.GetLocationByAddress(model.SearchString, o.ToString());
            if(r==null)
            {
                ViewBag.Error = "Error during search";
                return View(model);
            }
            ViewBag.Error = string.Format("Found {0} at {1}, {2}", r.StreetName, r.Latitude, r.Longitude);
            return RedirectToAction("Index", "Location");

        }

但是当我运行它,提交它,单步执行时,它会点击 RedirectToAction - 但是......主屏幕只是刷新。我从来没有看到新的位置视图。我在这里做错了什么?我还没有掌握路线...我需要将一个新对象传递给 Location.Index 屏幕以显示...

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-4


    【解决方案1】:

    您的路线映射不正确,请查看:http://www.asp.net/mvc/tutorials/controllers-and-routing/creating-custom-routes-cs

    routes.MapRoute(
        "Location",
        "Location/{lang}",
        new { controller = "Location", action = "Index", lang = "English" });
    

    【讨论】:

    • Rob,我试过这个,但重新加载了默认的开始屏幕。最重要的是位置控制器中的“返回视图()”正在运行 - 但返回了错误的视图......
    • 啊,等等...我删除了其他路线,这行得通。谢谢。
    【解决方案2】:

    我认为您不需要进行任何更改。在您的情况下,您想加载不同的控制器及其相关视图,您只需要在下面进行更改

    替换此代码return RedirectToAction("Index", "Location");

    使用此代码return Redirect("http://www.yoursite.com/Location/Index");

    您的更改就像从一个页面重定向到另一个页面,因此您需要将完整路径放在这里

    如有问题请尝试回复

    【讨论】:

      猜你喜欢
      • 2016-11-10
      • 2015-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多