2014-10-01 137 views
0

我需要爲表單提交執行服務器端驗證。我需要確保他們爲課程字段輸入的值存在於我的數據庫中。我的數據庫有一張可能的課程表和一個學生採取的課程表。爲了向course_taken表添加記錄,課程必須存在於課程表中。我是MVC的新手,我不確定這樣做的最佳途徑是什麼。有沒有像客戶端的數據註釋?任何幫助表示感謝你。服務器端驗證ASP.NET MVC

+1

您應該顯示供用戶選擇的可用值的列表 - 這將有效地防止無效值。讓我知道你是否需要幫助。 – tintyethan 2014-10-01 18:49:30

回答

0

你會添加註釋到模型類,以確保需要必填字段,但在檢查如果課程存在的情況下,使用像在POST處理程序如下(假設你使用像實體框架):

if(!db.Courses.Any(o=>model.CourseId==o.CourseId)){ 
    ModelState.AddModelError("CourseId","Course does not exist!"); 
} 

if(ModelState.IsValid){ 
//save to db 
} else{ 
return View(model); 
} 
0

在我看來,你應該創建一個自定義驗證註釋你的財產有它,當你在你的ModelState中控制器檢查的IsValid。 有了這個,你會在你的控制器減少混亂和您的審定會在正確的地方,所以如果需要改變,你可以隨時改變。 此外,如果檢查是從數據庫中添加緩存中的數據。