অ স্থির পদ্ধতিতে একটি লক্ষ্য প্রয়োজন


238

আমার কাছে একটি কন্ট্রোলার অ্যাকশন রয়েছে যা ফায়ারফক্সে স্থানীয়ভাবে এবং উত্পাদনে এবং আইই স্থানীয়ভাবে কার্যকর হয় তবে আইআই উত্পাদনে নয়। এখানে আমার নিয়ামক পদক্ষেপ:

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);
}

আইই-তে পাওয়া স্ট্যাক ট্রেসটি এখানে:

ত্রুটি. আপনার অনুরোধ প্রক্রিয়াকরণের সময় একটি ত্রুটি ঘটেছে। সিস্টেম.প্রকাশন। টার্গেট এক্সেপশন: অ স্থিত পদ্ধতিতে একটি লক্ষ্য প্রয়োজন। System.Reflection.RuntimeMethodInfo.CheckConsistency (অবজেক্ট টার্গেট) এ System.Refલેક્.Runটাইমথোডইনফো.আইনভোকআরগমেন্টস চেক (অবজেক্ট অবজেক্ট, বাইন্ডিংফ্ল্যাজস ইনভোক্টআত্র, বাইন্ডার বাইন্ডার, অবজেক্ট [] পরামিতি, সংস্কৃতিআইনের সংস্করণ.অনোটো সংস্করণ) সিস্টেম.ডাটা.অবজেক্টস.এলইনকি.কিয়ারিপ্যারেটার এক্সপ্রেশন, ট্রাইজেটেক্টফিল্ডিলিপ্রেসফ্রিজড্রিজারফ্রিজিউটারপ্রিজিউশন, সংক্ষিপ্তসার, সংক্ষিপ্তসার, সংক্ষিপ্ত বিবরণ, ইনপ্রেস্টিগ্রিফিজারেশনঅপ্রেসেশন, সংক্ষিপ্ত বিবরণ (বাইজেন্ট বাইন্ডার, অবজেক্ট [] প্যারামিটার, কালচারআইফোন সংস্কৃতি) System.Data.Objects.ELinq.QueryParameterExpression.TryEvaluatePath (এক্সপ্রেশন এক্সপ্রেশন,1 forMergeOption) at System.Data.Objects.ObjectQuery1.GetResults ( 1 forMergeOption) at System.Data.Objects.ObjectQueryঅবিচ্ছেদ্য 1. সিস্টেম.কিলকশনস.জেনেরিক.আইইনিউমারেবল.গেটইনিউমরেটর () সিস্টেম.লিনক.ইনিউমারেবল.ফার্সঅর্ডার ডিফল্ট [টিসোর্স] (আইএনউমারেবল 1 source) at System.Linq.Queryable.FirstOrDefault[TSource](IQueryable1 উত্স) ল্যান্ডটাইটেল.কন্ট্রোলারস.মোআনব্রোলার কন্ট্রোলার,)) System.Web.Mvc.RefectedActionDescriptor.Execute (কন্ট্রোলার কনটেক্সট কন্ট্রোলার কনটেক্সট, আইডিয়োরিজ) এ অবজেক্ট []]2 parameters) at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary2 পরামিতি) Castle.DynamicProxy.AbstractInvocation.Proceed এ Glimpse.Mvc3.Interceptor.InvokeActionMethodInterceptor.Intercept এ Castle.DynamicProxy.AbstractInvocation.Proceed () (IInvocation আবাহন) এ Castle.Proxies.Invocations.ControllerActionInvoker_InvokeActionMethod.InvokeMethodOnTarget () () এ Castle.Proxies.AyncControllerActionInvokerProxy.InvokeActionMethod (কন্ট্রোলার কনটেক্সট কন্ট্রোলার কনটেক্সট, অ্যাকশনডেস্কিটার অ্যাকশনডেস্কিটার, আইডিয়েটায় 2 পরামিতি) সিস্টেম.ওয়েভ.মভিসি .এসিএনসিঙ্কআলক .আলভস্ক্রিয় .আল্টওয়্যারস্ক্রিয়.এইচ.সি.আর.সি.এস.সি.এস.সি.এস.সি.এস.শাস্ক। .AncncControllerActionInvoker। <> C__DisplayClass4f.b__49 () System.Web.Mvc.Async.AsyncControllerActionInvoker এ>AsyncControllerActionInvoker। <> C__DisplayClass25। <> C__DisplayClass2a.b__20 () System.Web.Mvc.Async.AsyncControllerActionInvoker। <> C__DisplayClass25.b__22 (IAncncResult asyyCRSultyyCyRusultyyCyRusult)


উত্তর:


497

আমার মনে হয় আপনি যখন ল্যাম্বডায় কোনও ভেরিয়েবল ব্যবহার করেন যা রান-টাইমে নাল-রেফারেন্স। আপনার ক্ষেত্রে, আমি আপনার ভেরিয়েবল গণনাভিউমোডেলটি নাল-রেফারেন্স কিনা তা পরীক্ষা করব।

কিছুটা এইরকম:

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...
    }
}

71
+1 এটি অবশ্যই Where()ল্যাম্বডা অভিব্যক্তিতে একটি এনআরই এর ফলাফল । দুর্দান্ত উত্তর; আমাকে আজ ঘন্টা বাঁচাতে।
ইয়াক

মানগুলি লোড না করা এবং উত্তরাধিকার সূত্রে প্রাপ্ত নিয়ামক কনস্ট্রাক্টরের কাছ থেকে সেট করা একই সমস্যা ছিল, তারপরে শিশু নিয়ামকের কনস্ট্রাক্টরে একটি লিনকি কোয়েরিতে পাঠানো এবং এই রহস্যময় ত্রুটি ছুঁড়ে দেওয়া!
শাওসন

3
আমি মনে করি যে আপনি এই ত্রুটিটি পেয়েছেন তার কারণ হ'ল ল্যাম্বদা আন্তঃস্থদের মধ্যে কিছু প্রতিবিম্ব করছে এবং এটি বস্তুর উপর কোনও পদ্ধতি / সম্পত্তি কল করার চেষ্টা করছে, তবে কোনও বস্তুটি পাস হচ্ছে না তাই এটি পদ্ধতিটি কল করার চেষ্টা করছে / সম্পত্তি এটির মতো অচল তবে এটি শেষ পর্যন্ত বুঝতে পারে যে এটি অচল নয়। এই কারণেই আপনি প্লেইন পুরানো অবজেক্ট রেফারেন্স কোনও অবজেক্ট বার্তার উদাহরণ হিসাবে সেট করে না পেয়ে যান।
মেলবোর্ন বিকাশকারী

সমস্যাটি সমাধান করার জন্য কেবল প্রথম বাক্যটি পড়া যথেষ্ট
এন্টোইন পেলেটিয়ার

33

সাধারণত লক্ষ্যটি বাতিল হয়ে গেলে এটি ঘটে। সুতরাং প্রথমে আহ্বান টার্গেটটি ভাল করে পরীক্ষা করুন তারপরে লিনক কোয়েরি করুন।


5
আমার ক্ষেত্রে এটি যেখানে
শুল্কের

12

আমি এই বিষয়টি সত্ত্বা ফ্রেমওয়ার্কে প্রচলিত হিসাবে খুঁজে পেয়েছি যখন আমরা ডিবিসিওন্টেক্সট না করে ম্যানুয়ালি কোনও সত্তা ইনস্ট্যান্ট করি যা সমস্ত নেভিগেশন বৈশিষ্ট্যগুলি সমাধান করবে। যদি টেবিলের মধ্যে বৈদেশিক কী উল্লেখ (নেভিগেশন সম্পত্তি) থাকে এবং আপনি আপনার ল্যাম্বডায় সেই উল্লেখগুলি ব্যবহার করেন (উদাঃ প্রোডাক্ট ডেটেল.প্রডাক্টস.আইডি) তবে আপনি যদি ম্যানুয়ালি সত্তা তৈরি করেন তবে সেই "পণ্য" প্রসঙ্গটি বাতিল হয়ে যায়।


2

সমস্ত উত্তর একটি এনআরই (নাল রেফারেন্স ব্যতিক্রম) সহ ল্যাম্বডা অভিব্যক্তির দিকে নির্দেশ করছে। আমি দেখতে পেয়েছি যে লিনক টু সত্তা ব্যবহার করার সময়ও এটি ঘটে। আমি ভেবেছিলাম এটি উল্লেখ করা সহায়ক হবে যে এই ব্যতিক্রমটি কেবল ল্যাম্বডা অভিব্যক্তির ভিতরে কেবল একটি এনআরইয়ের মধ্যে সীমাবদ্ধ নয়।


1

পোস্টম্যান সরঞ্জামে ওয়েবএপিআই পরীক্ষায় আমি এই ত্রুটির মুখোমুখি।

কোডটি তৈরির পরে, যদি আমরা কোনও লাইন অপসারণ করি ( উদাহরণস্বরূপ: আমার ক্ষেত্রে যখন আমি একটি মন্তব্য করা লাইনটি সরিয়ে ফেলি তখন এই ত্রুটিটি ঘটেছিল ... ) তারপরে " নন-স্ট্যাটিক পদ্ধতিতে একটি লক্ষ্য প্রয়োজন " ত্রুটি ঘটবে।

আবার, আমি অনুরোধটি প্রেরণের চেষ্টা করেছি। এই সময় কোড সঠিকভাবে কাজ করছে। এবং পোস্টম্যানে আমি সঠিকভাবে প্রতিক্রিয়া পেয়েছি।

আমি আশা করি এটি কারও কাজে লাগবে ...

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.