当我尝试在服务器上部署我的项目时,我开始得到跟随错误。这对我来说是莫名其妙的行为,因为我在本地计算机和服务器之间做了类似的操作。
[NullReferenceException:对象引用未设置为对象的实例。] MyProject.Models.ViewModels.CashboxViewModel..ctor(Cashbox entity)+168 MyProject.Controllers.CashboxController.Index(Nullable
1 id) +194 lambda_method(Closure , ControllerBase , Object[] ) +150 System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary
2个参数)+241 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext,ActionDescriptor actionDescriptor,IDictionary2 parameters) +38 System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) +11 System.Web.Mvc.Async.WrappedAsyncResult
2.CallEndDelegate(IAsyncResult asyncResult)+138 System.Web.Mvc.Async.AsyncInvocationWithFilters.b__3d()+111 System.Web.Mvc.Async。&lt;&gt; c__DisplayClass46.b__3f()+ 452 System.Web.Mvc.Async。&lt;&gt; c__DisplayClass33.b__32(IAsyncResult asyncResult)+15 System.Web.Mvc.Async。&lt;&gt; c__DisplayClass2b.b__1c()+37 System.Web.Mvc.Async。&lt;&gt; c__DisplayClass21.b__1e(IAsyncResult asyncResult)+241 System.Web.Mvc.Controller.b__1d(IAsyncResult asyncResult,ExecuteCoreState innerState)+29 System.Web.Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) +111 System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +53 System.Web.Mvc.Async.WrappedAsyncVoid
1.CallEndDelegate(IAsyncResult asyncResult)+19 System.Web.Mvc.MvcHandler.b__5(IAsyncResult asyncResult,ProcessRequestState innerState)+51 System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)+111 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+606 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean&amp; completedSynchronously)+288
控制器
[HttpGet]
public ActionResult Index(Guid? id)
{
Cashbox obj = null;
if (id != null)
{
obj = service.GetById(id.Value);
}
var model = (TempData[SESSION_KEYS.Transfer] as CashboxViewModel) ?? new CashboxViewModel(obj);
SetReferenceList(model);
return View(model);
}
public BaseViewModel(TEntity obj)
{
Set(obj);
}
protected void Set(TEntity obj, params string[] constrains)
{
if (obj != null)
{
foreach (var info in obj.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public).Where(x => x.CanRead))
{
if (constrains.Contains(info.Name))
{
continue;
}
var piDest = this.GetType().GetProperty(info.Name);
if (piDest != null && piDest.CanWrite)
{
piDest.SetValue(this, info.GetValue(obj));
}
}
}
}
public class CashboxViewModel: BaseViewModel<Cashbox>
{
public CashboxViewModel()
: base()
{
}
public CashboxViewModel(Cashbox entity)
: base(entity)
{
}
}