রেজার ভিউ ইঞ্জিন: একটি এক্সপ্রেশন ট্রিতে ডায়নামিক অপারেশন নাও থাকতে পারে


173

আমার এর মতো একটি মডেল রয়েছে:

public class SampleModel
{
     public Product Product { get; set; } 
}

এবং আমার নিয়ামকটিতে আমি মুদ্রণের চেষ্টা করে ব্যতিক্রম পাই

@Html.TextBoxFor(p => p.Product.Name)

এটি ত্রুটি:

Exception: An expression tree may not contain a dynamic operation

যদি কেউ আমাকে কীভাবে এটি ঠিক করতে পারেন তার কিছু সংকেত দিতে পারলে আমি সত্যিই এটির প্রশংসা করব!


1
এটি কি এমভিসি 3 আরসি তে আছে? এছাড়াও আপনি কি পণ্য দেখতে দেখতে আমাদের দেখাতে পারেন? আমি এটি এমভিসি 3 আরসিতে পুনরুত্পাদন করতে অক্ষম ছিলাম
bmancini

উত্তর:


297

আমার কাছে মনে হচ্ছে আপনার টাইপ করা ভিউ আছে। ডিফল্টরূপে, এমভিসি 3 আরসিতে রেজার ভিউগুলি টাইপ করা হয় dynamic। তবে ল্যাম্বডাস গতিশীল সদস্যদের সমর্থন করে না। আপনি আপনার মডেল দৃ strongly়ভাবে টাইপ করতে হবে। আপনার ভিউ ফাইলের শীর্ষে অ্যাড করুন

@model SampleModel

11
এটি আমার জন্য এটি একটি বড়
মাপের মিছিল

আপনি যদি একটি মডেল আছে বিন্দু?
djack109

92

একটি সাধারণ ত্রুটি যা এর কারণ হ'ল আপনি যুক্ত করার সময়

@Model SampleModel

পরিবর্তে পৃষ্ঠার শীর্ষে

@model SampleModel

5
এই উত্তর যুক্ত করার জন্য ধন্যবাদ! আশ্চর্যজনক কীভাবে কয়েক বছর প্রোগ্রামিংয়ের পরে আপনি কেস সংবেদনশীলতা সম্পর্কে ভুলে যেতে পারেন।
ব্রেন্টলাইট

1
আপনি যদি "@ মডেল" এর পরিবর্তে "মডেল" ব্যবহার করেন তবে এটিও ঘটতে পারে ... যা রানটাইমটিতে তৈরি করবে কিন্তু ব্যর্থ হবে।
ডেভ রেমি

8

এই লিঙ্কে @ মডেল সম্পর্কে ব্যাখ্যা করুন, একটি অংশ দেখুন:

@model(ছোট হাতের অক্ষর "মি") আপনার দেখার শীর্ষে মডেল ধরণের ঘোষণার জন্য রেজার ভিউগুলিতে একটি সংরক্ষিত কীওয়ার্ড। আপনি নাম স্থানটিও রেখেছেন, যেমন:@model MyNamespace.Models.MyModel

ফাইলের পরে, আপনি যে বৈশিষ্ট্যটি চান তার সাথে উল্লেখ করতে পারেন @Model.Attribute(বড় হাতের অক্ষর "এম")।


2
এটা আমার সমস্যা ছিল। আপনি যদি মনোযোগ সহকারে লক্ষ্য রাখছেন না, ভিজ্যুয়াল স্টুডিও আপনি যা লিখছেন তা রাজধানী "এম" তে রূপান্তরিত করে। এটা সত্যিই বিরক্তিকর।
রবিবি

7

দেখে মনে হচ্ছে আপনার ভিউ টাইপ করা হয়েছে dynamic। ভিউতে সঠিক প্রকারটি সেট করুন এবং আপনি ত্রুটিটি চলে যেতে দেখবেন।


5

এই লাইনটি ব্যবহার করার আগে (দৃ into়ভাবে এইচটিএমএল সহায়ককে টাইপ করুন) line

@Html.TextBoxFor(p => p.Product.Name)

দৃ strongly়ভাবে টাইপ দর্শন করার জন্য আপনার মডেলটি আপনার পৃষ্ঠায় অন্তর্ভুক্ত করা উচিত।

@model SampleModel

1

এই ত্রুটিটি আমার কাছে হয়েছিল কারণ আমার কাছে @ মডেলের পরিবর্তে @@ মডেল ছিল ... আমার ক্ষেত্রে অনুলিপি এবং পেস্ট করার ত্রুটি। @ মডেল এ পরিবর্তন করা আমার জন্য এটি স্থির করে।


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