【问题标题】:Changing a Guid variable when user is admin [closed]当用户是管理员时更改 Guid 变量[关闭]
【发布时间】:2013-10-23 13:58:55
【问题描述】:

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

【问题讨论】:

  • 是 userSession.UserIDNative 是 GUID 类型吗?
  • 外部组件抛出的异常是什么?
  • 是的,它是Guid类型的
  • 老实说,我并不真正理解异常的真正含义。
  • 如何查看该外部组件的异常情况?

标签: c# razor


【解决方案1】:

我遇到的问题实际上是 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); 

【讨论】:

    猜你喜欢
    • 2016-07-05
    • 2018-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    • 2018-07-27
    相关资源
    最近更新 更多