I have an entity called Domain.Models.BlogPost
which contains the following properties:
You could either rename the fields in the AddComment
section to something that does not collide with the properties named in the Model, or you could override the value in the view using a different overload of Html.TextBox
This overload of TextBox takes a value:
value (Type: System.Object)
The value of the text input element. If this value is null, the value of the element is retrieved from the ViewDataDictionary object. If no value exists there, the value is retrieved from the ModelStateDictionary object.
UPDATE: Since you added "NewComment" as a property and resolved the property naming collision that way, all that you need to do to bind a PostComment rather than the whole view model on POST to the action, is to instruct the model binder that a prefix will be used. This is done using the BindAttribute
.
public ActionResult AddComment([Bind(Prefix = "NewComment")] PostComment postComment)