Razor View Engine : An expression tree may not contain a dynamic operation

asp.net Mvc.Net 4.0Razor

asp.net Mvc Problem Overview


I have a model similar to this:

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

And in my controller I get an exception trying to print out

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

This is the error:

Exception: An expression tree may not contain a dynamic operation

If anyone can give me some clues on how to fix this I would really appreciate it!

asp.net Mvc Solutions


Solution 1 - asp.net Mvc

It seems to me that you have an untyped view. By default, Razor views in MVC3 RC are typed as dynamic. However, lambdas do not support dynamic members. You have to strongly type your model. At the top of your view file add

@model SampleModel

Solution 2 - asp.net Mvc

A common error that is the cause of this is when you add

@Model SampleModel

at the top of the page instead of

@model SampleModel

Solution 3 - asp.net Mvc

In this link explain about @model, see a excerpt:

> @model (lowercase "m") is a reserved keyword in Razor views to > declare the model type at the top of your view. You have put the > namespace too, e.g.: @model MyNamespace.Models.MyModel > > Later in the file, you can reference the attribute you want with > @Model.Attribute (uppercase "M").

Solution 4 - asp.net Mvc

Seems like your view is typed dynamic. Set the right type on the view and you'll see the error go away.

Solution 5 - asp.net Mvc

Before using (strongly type html helper into view) this line

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

You should include your model into you page for making strongly type view.

@model SampleModel

Solution 6 - asp.net Mvc

This error happened to me because I had @@model instead of @model... copy & paste error in my case. Changing to @model fixed it for me.

Solution 7 - asp.net Mvc

On vb.net you must write @ModelType.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionfemseksView Question on Stackoverflow
Solution 1 - asp.net MvcmarcindView Answer on Stackoverflow
Solution 2 - asp.net MvcfelbusView Answer on Stackoverflow
Solution 3 - asp.net MvcCharlestownView Answer on Stackoverflow
Solution 4 - asp.net MvcEsteban ArayaView Answer on Stackoverflow
Solution 5 - asp.net MvcKuberView Answer on Stackoverflow
Solution 6 - asp.net MvcJosephDoggieView Answer on Stackoverflow
Solution 7 - asp.net MvcPerryView Answer on Stackoverflow