2010-02-16 62 views
0

建議的做法是在路由約束中進行數據查找,還是應該保持輕量級?在路線限制中查找數據?

我想如果用戶試圖訪問不存在的產品有觸發404路由約束 - 即:

/EN-US /產品/ myproductcode

但我m關心性能影響,即使查找是微不足道的。

感謝

回答

1

嗯,這聽起來並不像一個很好的解決方案給我,即使表現會沒有多大關係(你會連接到您的數據庫中的控制器,以獲得產品反正)。

即使產品代碼不會在你的數據庫不存在,但這並不意味着URL不比賽路線。

例如,1.0的NerdDinner處理您的情況是這樣的:

public ActionResult Details(int id) { 
    Dinner dinner = dinnerRepository.GetDinner(id); 
    if (dinner == null) { 
     //Here, you can make sure the response status code is 404 
     return View("NotFound"); 
    } 
    return View(dinner); 
} 
+0

有沒有產生404丟失數據的更好/更簡單的方法 - 將一個動作過濾器是比較合適? – Micael 2010-02-16 08:12:37

+0

@Micael,我編輯了答案。查看示例代碼。 – 2010-02-16 08:17:40