-2

我正在构建一个快速原型应用程序,该应用程序有两个硬编码用户和一个患者用户和一个管理员的测试数据。也可以创建新用户,但没有任何数据可以显示,他们只能添加。我有一种情况,我调用一个将 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 } });}  
4

1 回答 1

0

我得到的问题实际上DataSet ds是在 if 语句的范围之外使用的。为了解决这个问题,而不是用条件包装方法调用,我包装了我试图传入的 Guid。这是我使用的代码,最终对我有用,它很脏/很hackish,我很可能也不需要那里的其他代码。

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); 
于 2013-10-23T14:30:33.627 回答