2013-10-23 50 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); 
相关问题