Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC4和路由_C#_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

C# MVC4和路由

C# MVC4和路由,c#,asp.net-mvc,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 4,我有一个调用web服务并返回结果的控制器和视图。目前,它是我的默认控制器,名为Home,它使用索引视图页面 它起作用了。我可以发布数据,然后在刷新的屏幕上显示一些内容。它重新加载相同的视图 现在,一旦我提交了,并且得到了很好的回复,我想加载一个不同的控制器/视图 我现在的路线是这样的: routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Home", "{lang

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

它起作用了。我可以发布数据,然后在刷新的屏幕上显示一些内容。它重新加载相同的视图

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

我现在的路线是这样的:

    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-但是。。。主屏幕只会刷新。我从未看到新的位置视图。我做错了什么?我还没有掌握路线。。。我需要向位置传递一个新对象。要显示索引屏幕…

您的路线映射不正确,请检查以下内容:


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

替换此代码
返回重定向到操作(“索引”、“位置”)

使用此代码
返回重定向(“http://www.yoursite.com/Location/Index");

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


如果有任何问题,请尝试并回复Rob,我尝试了此操作,但默认的开始屏幕已重新加载。首先,位置控制器中的“返回视图()”正在运行-但是返回了错误的视图…啊,等等。。。我删除了其他路线,这是有效的。汉克斯。
routes.MapRoute(
    "Location",
    "Location/{lang}",
    new { controller = "Location", action = "Index", lang = "English" });