首先,我看到了這個問題:ASP.NET MVC one route, two different views但它並不回答我的確切問題。如何在ASP.NET MVC中使用相同的路徑創建兩個視圖?
我想有一個圖,但具體取決於您是否已經登錄同一網址/路由
我想它,所以如果一個用戶進入: mydomain.com那麼他們要麼是帶到營銷登陸頁面,或者他們將被帶到用戶登錄的儀表板。
我上面貼的問題表明,我應該使用:
if (Request.IsAuthenticated) {
return View("Dashboard");
} else {
return View("Index");
}
然而,我的觀點一個要求,我通過他們的特定動作,因爲它需要的行動提供視圖模型數據。
現在,如果我這樣做:
if (Request.IsAuthenticated) {
return RedirectToAction("Index", "Dashboard");
} else {
return View("Index");
}
這工作,但重定向會導致用戶的網址是儀表板指數作用,這是mydomain.com/dashboard的路線。
我怎樣才能通過操作並仍然保持我的域的根網址?
然後我有代碼重複。這些是在兩個不同的控制器(「儀表板」vs「着陸」)和儀表板控制器有很多的存儲庫,沒有真正有意義的着陸控制器。 –
我可能是錯的,但這是唯一可以考慮維護url並仍然檢索模型的方法。另一種(未經測試)的方式可能會在「儀表板」視圖中的代碼塊中進行模型檢索,但我不建議這樣做,因爲您「應該」保持視圖精簡。 –
爲什麼你不能建立一個完成所有繁重工作的服務,然後在'LandingPage'動作和'Dashboard'動作中使用該服務? –