我有一个调用 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 屏幕以显示...