我有一個包含newsarticles的數據表。asp.net mvc幫助路由
我創建了標準的CRUD視圖/表單,它也有分頁。
例如,在此刻我有網址是這樣的:
// GET: /News/
// /News/Page/2
新聞文章可以存檔(一個數據庫中的布爾值)
我希望URL映射到唯一的存檔數據數據庫或非存檔數據。
eg/News/Archived/Page/2應映射到僅存檔項目的第2頁。
和/ News/Page/2應映射到未歸檔項目的第2頁。
我需要做什麼在全球asax實現這一點。索引方法的簽名應該是什麼?
//Signature in controller
public ActionResult Index(int? page)
//Route for paging
routes.MapRoute(
"NewsArticles",
"News/Page/{page}",
new { controller = "News", action = "Index" }
);
我建議不要使用相同的操作方法來控制兩個不同的數據路徑。這往往會在操作方法中創建更復雜的邏輯,這是針對最佳MVC模式而建議的 - 操作方法應該是邏輯和錯誤不可知的,並且應該只將參數傳遞到域中,並將返回的任何數據傳遞到查看(或返回域中的任何錯誤(如果有的話))。 – eduncan911 2010-01-20 16:17:11
我不同意。控制器負責與模型進行通信並獲得結果。我不明白這是如何違背MVC模式的。操作規範指出,歸檔和非歸檔結果之間唯一的區別因素是數據庫中的單個位字段。我認爲將這一切傳遞給你的模型切換你回來的結果沒有任何壞處。 – 2010-01-20 16:20:00
另外,它不是兩個不同的「數據路徑」,如上所述。在你的解決方案中,OP要麼必須創建兩個Views,要麼將View的名稱傳遞給View()方法,無論哪種情況,他的模型對象對於兩個控制器方法都是相同的。它只是爲了編碼而添加代碼給我... – 2010-01-20 16:22:20