为了账号安全,请及时绑定邮箱和手机立即绑定

非静态方法需要目标

非静态方法需要目标

HUWWW 2019-11-11 12:58:24
我有一个控制器操作,该操作在Firefox本地和生产环境中以及本地IE上均能正常运行,但在生产环境中却无法正常运行。这是我的控制器动作:public ActionResult MNPurchase(){    CalculationViewModel calculationViewModel = (CalculationViewModel)TempData["calculationViewModel"];    decimal OP = landTitleUnitOfWork.Sales.Find()        .Where(x => x.Min >= calculationViewModel.SalesPrice)        .FirstOrDefault()        .OP;    decimal MP = landTitleUnitOfWork.Sales.Find()        .Where(x => x.Min >= calculationViewModel.MortgageAmount)        .FirstOrDefault()        .MP;    calculationViewModel.LoanAmount = (OP + 100) - MP;    calculationViewModel.LendersTitleInsurance = (calculationViewModel.LoanAmount + 850);    return View(calculationViewModel);}这是我在IE中获得的堆栈跟踪:错误。处理您的请求时发生错误。System.Reflection.TargetException:非静态方法需要一个目标。在System.Reflection.RuntimeMethodInfo.CheckConsistency(Object target)在System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj,BindingFlags invokeAttr,活页夹活页夹,Object []参数,CultureInfo文化)在System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr,活页夹活页夹,Object []参数,CultureInfo文化),位于System.Reflection.RuntimePropertyInfo.GetValue(Object obj,Object []索引),位于System.Data.Objects.ELinq.QueryParameterExpression.TryGetFieldOrPropertyValue(MemberExpression我,对象实例, System.Data.Objects.ELinq.QueryParameterExpression.TryEvaluatePath(Expression expression,1 forMergeOption)   at System.Data.Objects.ObjectQuery1.GetResults(可空1 forMergeOption) at   System.Data.Objects.ObjectQuery1.System.Collections.Generic.IEnumerable.GetEnumerator()在System.Linq.Enumerable.FirstOrDefault [TSource](IEnumerable的1 source) at   System.Linq.Queryable.FirstOrDefault[TSource](IQueryable1源)在LandTitle.Controllers.HomeController.MNRefi()在lambda_method(封闭,ControllerBase ,Object []),位于System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary2 parameters) at   System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext 
查看完整描述

3 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

我认为当您在运行时为空引用的lambda中使用变量时,会发生此令人困惑的异常。在您的情况下,我将检查您的变量CalculationViewModel是否为空引用。


就像是:


public ActionResult MNPurchase()

{

    CalculationViewModel calculationViewModel = (CalculationViewModel)TempData["calculationViewModel"];


    if (calculationViewModel != null)

    {

        decimal OP = landTitleUnitOfWork.Sales.Find()

            .Where(x => x.Min >= calculationViewModel.SalesPrice)

            .FirstOrDefault()

            .OP;


        decimal MP = landTitleUnitOfWork.Sales.Find()

            .Where(x => x.Min >= calculationViewModel.MortgageAmount)

            .FirstOrDefault()

            .MP;


        calculationViewModel.LoanAmount = (OP + 100) - MP;

        calculationViewModel.LendersTitleInsurance = (calculationViewModel.LoanAmount + 850);


        return View(calculationViewModel);

    }

    else

    {

        // Do something else...

    }

}


查看完整回答
反对 回复 2019-11-11
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

我在邮差工具中测试WebAPI时遇到此错误。


构建代码后,如果在调试模式下删除任何行(例如,在我的情况下,我删除一条注释行,则会发生此错误...),则将发生“ 非静态方法需要目标 ”错误。


同样,我尝试发送相同的请求。这段时间代码正常工作。我在邮递员中得到了正确的答复。


我希望它将对某人有用...


查看完整回答
反对 回复 2019-11-11
  • 3 回答
  • 0 关注
  • 938 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信