2013-10-23 33 views
-2

我正在構建一個快速原型應用程序,該應用程序擁有兩名硬編碼用戶,其中包含患者用戶和管理員的測試數據。新用戶也可以創建,但不會顯示任何要顯示的數據,只能添加。我有一種情況,我調用了一個將Guid作爲參數的方法。當用戶是管理員時,我想傳遞一個硬編碼的Guid給現有的患者用戶,當不是管理員時,我想根據用戶會話附帶的Guid,下面是我目前無法使用的剃鬚刀代碼。當用戶是管理員時更改Guid變量

Guid patientID = new Guid("3aac8d07-ad35-e311-8bdf-9ebf7757768f"); 

@if(userSession.IsAdmin == "TRUE") 
{ 
    System.Data.DataSet ds = MeasuredHealthBeta1.Utilities.DataHelper.Measurements_Get306060DayGlucoseMeasurements(patientID); 
} 
else 
{ 
    System.Data.DataSet ds = MeasuredHealthBeta1.Utilities.DataHelper.Measurements_Get306060DayGlucoseMeasurements(userSession.UserIDNative); 
} 

錯誤「外部組件引發一個異常」發生的是,當含有這種剃刀代碼視圖去使用以下方法

@{Html.RenderPartial("../Metrics/ReportsHistoryList", Model, new ViewDataDictionary(this.ViewData) { { "MeasurementTypeGroupIDs", defaultMeasurementTypeIDs } });} 
+0

是userSession.UserIDNative是GUID類型嗎? – Izikon

+0

外部組件拋出的異常是什麼? –

+0

是的,它是Guid類型的 –

回答

0

我得到這個問題實際上是DataSet ds得到加載在if語句的範圍之外被使用。爲了解決這個問題,而不是用條件調用方法調用,我包裝了我試圖通過的Guid。這裏是我使用的代碼,最終爲我工作,這是骯髒/駭客,我很可能不需要在那裏。

Guid patientID = userSession.UserIDNative; 
if(userSession.IsAdmin.ToUpper() == "TRUE") 
{ 
    patientID = new Guid("3aac8d07-ad35-e311-8bdf-9ebf7757768f"); 
} 
else 
{ 
    patientID = userSession.UserIDNative; 
} 

System.Data.DataSet ds = MeasuredHealthBeta1.Utilities.DataHelper.Measurements_Get306060DayGlucoseMeasurements(patientID); 
相關問題