3

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 にヒットしますが、... ホーム画面が更新されるだけです。新しい場所ビューが表示されません。ここで何が間違っていますか?Routes はまだ把握できていません... Location.Index 画面に新しいオブジェクトを渡して表示する必要があります...

4

2 に答える 2

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" });
于 2013-04-02T06:28:53.667 に答える