I am using asp.net mvc 3 and I keep getting this error and I don't understand it since I am not using a template.
I have this in my partial view
@model ViewModels.FormViewModel
<div="tabs-1">
@Html.TextBoxFor(x => x.Due.ToShortDateString())
</div>
in my viewmodel
public class FormViewModel
{
public DateTime Due { get; set; }
public FormViewModel()
{
DueDate = DateTime.UtcNow;
}
}
and I get this error
Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.InvalidOperationException: Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.
Should be like this:
@Html.TextBoxFor(x => x.Due)
And if you want some format for this date:
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime Due { get; set; }
and then:
@Html.EditorFor(x => x.Due)
of if you really want to use this .ToShortDateString()
method you need to use a non-strongly typed helper (obviously that's something I would recommend against):
@Html.TextBox("Due", Model.Due.ToShortDateString())
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With