在MVC3應用,是它認爲是不好的做法,在.cshtml
視圖中使用剃刀塊@{ }
內部的try catch塊?試圖抓住不好的做法嗎?
6
A
回答
12
1
我會這麼說。最佳路徑將使模型在到達視圖之前傳遞給由控制器驗證的視圖。
2
嗯,你的使用取決於你的應用程序,但是你應該儘量保持你的意見,裸地的具體情況。理想情況下,代碼有效性將在控制器中進行驗證,並且永不傳遞給視圖。
2
不要把這樣的代碼視圖。視圖應儘可能只用於您的顯示標記。您可以將該嘗試捕獲放入控制器操作方法,該方法將數據提供給視圖。
public ActionResult GetUser(int id)
{
try
{
//Get the ViewModel and return the correct View.
}
catch(Exception ex)
{
//log the error
return View("YourErrorView");
}
}
請記住,MVC強調的一點是關注點的分離。視圖應該是乾淨可讀的標記。
0
它不是做一件好事。 MVC框架旨在用邏輯來分離視圖。因此,在控制器中保持它應該在的位置。
1
@{
try
{
<td>
@((TradeType)Enum.Parse(typeof(TradeType), item.AppCode)).GetDescription();
</td>
}
catch
{
<td>@item.AppCode
</td>
}
}
+3
這個問題並非真正的答案:問題在於它是否是好的做法,而不是如何做。 – Stephen 2015-01-23 10:46:23
+0
雖然這可能會回答這個問題,但您並沒有留下任何解釋爲什麼這會起作用。這個答案不會爲可能有相同問題的後來訪問者增加太多價值。請擴大您的答案,包括一些解釋。 – 2015-01-23 10:51:00
相關問題
- 1. 爲什麼試着抓住不抓住Sql語法錯誤
- 2. 試圖抓住從URL
- 3. 試圖抓住連接
- 4. 嵌套做循環和嘗試抓住
- 5. 試着抓住C#我該怎麼做?
- 6. 嘗試抓住 - 不捕捉
- 7. 嘗試抓住不好的編程練習
- 8. javascript試圖抓住json解析
- 9. 我應該抓住EmptyResultDataAccessException嗎?
- 10. 無法抓住protractor.promise.defer.reject
- 11. 嘗試和抓住TSQL - 趕不捕獲
- 12. 嘗試抓住不捕捉異常?
- 13. 嘗試在iPhone中抓住?
- 14. Sql嘗試抓住在asp.net
- 15. 視圖創建部分(子視圖)是不好的做法嗎?
- 16. 這是不好的做法嗎? C++
- 17. 這是不好的做法嗎?
- 18. 它被抓到時只記錄異常是不好的做法嗎?
- 19. SQLiteException不被抓住
- 20. 通過腳本重定向圖像是不好的做法嗎?
- 21. 根據行動改變視圖是不好的做法嗎?
- 22. 單元測試私有方法是一種好的做法嗎?
- 23. 嘗試抓住最後的聲明?
- 24. 試着抓住PHP的警告
- 25. 嘗試/抓住移動safari中的Javascript?
- 26. 在jQuery中做$(「*」)。live(「mouseover」,someFun)是不好的做法嗎?
- 27. 嘗試/抓住整個C#程序可能嗎?
- 28. 例外不被抓住
- 29. 例外不被抓住
- 30. 良好的做法或不好的做法
什麼在地球上? – SLaks 2012-03-23 19:31:50
@SLaks - 正如你所說,這沒有什麼好的理由,而且在錯誤的地方會有邏輯 - 我還沒有完成它,但只是想來回一些。原因是我意識到我在關聯一個有一個有效的外部對象的視圖中有一個例外,但是這個外部對象已經從數據庫中刪除了。下面是一個關聯的例子:'phase.Container = containers.Where(cont => cont.ContainerId == phase.ContainerId).SingleOrDefault();'。我將不得不在這裏處理例外情況。是否所有的linq都被try catch包圍? – 2012-03-23 19:38:20