I have a View that I am using as an EditorTemplate. I want to limit what the user can edit vs. what they can insert. My EditorTemplate View is typed as SomeModel and I know that if SomeModel.Id is not 0, that means we are doing an edit, otherwise we are doing an insert. I thought I’d be able to do something like:
@if (Model.Id == 0)
{
//show "insert-specific" UI
}
but for some reason, I always get 0’s, nulls, default, etc. when I check via Model. whereas the Html helper methods pick up the true value just fine, such as:
@Html.TextBoxFor(model => model.Id)
Again, the value of Model.Id is always 0, even when @Html.TextBoxFor(model => model.Id) shows another value.
Is there a better way to achieve what I am trying to do?
Note: Not sure that it matters, but I’m using the Telerik MVC Grid control. It doesn’t seem to allow for a different View for inserting vs. editing.
Yo,
If you are using Ajax binding then the EditorTemplate is serialized and send to the client where it is re-populated with different values each time you edit a record or add new record.
If you are using ajax binding then you can use the OnEdit client event and check whether or not the e.mode is edit or insert. Then you can manipulate that editor with JavaScript.