C# “如何修复”;详情页“;数据类型错误

C# “如何修复”;详情页“;数据类型错误,c#,asp.net-mvc,asp.net-mvc-5,C#,Asp.net Mvc,Asp.net Mvc 5,我正在设置一个包含元素详细信息的新页面,并希望在页面中支持nvarchar值。我需要在哪里更改代码 我的控制器 public ActionResult Details(string id) { try { if (string.IsNullOrEmpty(id)) { return RedirectToAction("TimeS

我正在设置一个包含元素详细信息的新页面,并希望在页面中支持nvarchar值。我需要在哪里更改代码

我的控制器

 public ActionResult Details(string id)
        {
            try
            {
                if (string.IsNullOrEmpty(id))
                {
                    return RedirectToAction("TimeSheet", "AllTimeSheet");
                }
             MainTimeSheetView objMT = new MainTimeSheetView();
                objMT.ListofVacationsDayoffs = _ITimeSheet.GetVacationsbyTimeSheetMasterID(Convert.ToInt32(id));


                objMT.TimeSheetMasterID = Convert.ToInt32(id);
                return View(objMT);
            }
            catch (Exception)
            {
                throw;
            }
        }
我的班级

public class GetVacations
    {
        public string Vacations { get; set; }
    }

我的列表与查询过程

 public List<GetVacations> GetVacationsbyTimeSheetMasterID(int TimeSheetMasterID)
        {
            using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["TimesheetDBEntities"].ToString()))
            {
                con.Open();
                try
                {
                    var param = new DynamicParameters();
                    param.Add("@TimeSheetMasterID", TimeSheetMasterID);
                    var result = con.Query<GetVacations>("Usp_GetVacationsbyTimeSheetMasterID", param, null, true, 0, System.Data.CommandType.StoredProcedure).ToList();
                    if (result.Count > 0)
                    {
                        return result;
                    }
                    else
                    {
                        return new List<GetVacations>();
                    }
                }
                catch (Exception)
                {
                    throw;
                }
            }
        }

存储过程返回什么?过程返回一列nvarchar值,我现在将这些值转换为整数,因为页面停止使用nvarchar值。如果没有,则显示错误页面。我确信这就是列的数据类型的原因,如果我从nvarchar改回int,它将工作,页面将出现。请提供
MainTimeSheetView
class1我看到的问题是,
ListofVacationsDayoffs
从未定义。您指定了一个值,但从未定义它。我建议在模型类中使用构造函数将其设置为新列表,或者在尝试赋值之前将其设置为新列表。当您说“仅当我将值转换为int时它才工作”是什么意思?存储过程返回什么?过程返回一列nvarchar值,我现在将这些值转换为整数,因为页面停止使用nvarchar值。没有任何内容,只显示错误页面。我确信这就是列的数据类型的原因,如果我从nvarchar改回int,它将工作,页面将出现。请提供
MainTimeSheetView
class1我看到的问题是,
ListofVacationsDayoffs
从未定义。您指定了一个值,但从未定义它。我建议在模型类中使用构造函数将其设置为新列表,或者在尝试赋值之前将其设置为新列表。当你说“只有当我把我的值转换成int时它才起作用”时,你是什么意思?
@model WebApp.Models.Model

      foreach (var item in Model.ListofVacationsDayoffs)
   {
      <td><b>@Html.DisplayFor(modelItem => item.Vacations)</b></td>

   }

  public class MainTimeSheetView
    {

        public List<GetVacations> ListofVacationsDayoffs { get; set; }

    }

SELECT     

      CASE WHEN Hours = 1 THEN  0
      WHEN Hours = 2 THEN 0
      WHEN Hours = 3 THEN 0
      WHEN Hours = 4 THEN 0
      WHEN Hours = 8 THEN 8
      ELSE 0
      END
        AS Vacations
  FROM [TimeSheetDetails]    t  
  where TimeSheetMasterID =@TimeSheetMasterID