2017-06-16 177 views
0

我有一個控制器創建並返回觸發警報的內容。 它加載一個空白頁面的問題。我怎樣才能防止它加載一個空的頁面,並保持在當前視圖,並不做任何事情只是彈出警報。防止加載頁面

我真正想要的是這裏之前,用戶可以創建新的數據,將驗證第一,如果diseaseID已經存在針對特定assessmentID,而當結果爲空,它只是彈出一個警告,什麼也不做。但在這裏我只是想讓alert()正常工作。

控制器:

public ActionResult CreateDisease(int? diseaseID,int? assessmentID, DiseaseList diseaselist) 
    { 
     diseaselist.DiseaseID = diseaseID; 
     diseaselist.AssessmentID = assessmentID; 
     db.DiseaseLists.Add(diseaselist); 
     db.SaveChanges(); 
     return Content("<script language='javascript' type='text/javascript'>alert('Item already exist');</script>"); 

    } 
+0

您可以在'ViewBag'包裹郵件或然後視圖模型中的客戶端代碼中使用'alert'與JS是否存在消息。 –

+0

@TetsuyaYamamoto我編輯了內容。 – kielou

+0

而不是在GET方法中返回'Content',嘗試使用'return View(「Disease」)'來顯示相同​​的視圖。客戶端驗證可以使用AJAX以'DiseaseID'作爲參數來處理,並將其傳遞給控制器​​操作,如果存在,則返回驗證消息。 –

回答

1

你不需要返回腳本從控制器的內容,只是返回值的JSON會告訴你,這個項目已經存在,並基於該true或false值顯示來自客戶端js的警報。

控制器代碼將是這個樣子

diseaseModel.DiseaseID = diseaseID; 
diseaseModel.AssessmentID = assessmentID; 
diseaseModel.AlreadyExist = true; 

return Json(diseaseModel);