ID do modelo do ASP.NET MVC 3 usando o valor do ID da rota

Cenári
Route: / template / customize / 10 Onde: 10 = ID do Template ()

No controlador, o modelo é criado com base no modelo, de modo que o modelo do View é na verdade um objeto Customization () que realmente possui um ID de 0 porque é novo.

Na exibição, eu renderizo @ Html.HiddenFor (m => m.Id) e o valor resultante dessa entrada oculta é 10, embora deva ser0 porque m é do tipo Personalização. Eu já deparei com isso antes com o MVC 2 e resolvi isso usando os métodos auxiliare

Questõe

Existe uma anotação ou algo que eu possa adicionar ao método Html Helper para renderizar o valor corret

sso é um bug (o MVC parece renderizar m.Id como o valor da rota, independentemente do modelo definido no controlador

ódigo adicional para esclarecimen

Visã

@model Project.Core.Domain.Customization
@using( Html.BeginForm( "save", "customization" ) )
{
    @Html.HiddenFor( m => m.Id )
    @Html.HiddenFor( m => m.Template.Id )
    <button type="submit" id="save" name="save">Save</button>
}

Controlado

       public ActionResult Customize( int id )
    {
        var template = Persistence.Data.RetrieveObject<Template>( id );
        var model = new Customization();

        ViewBag.Template = template;
        return ( View( model ) );
    }

Soluçã

Assinatura alterada da ação para:

public ActionResult Customize( int TemplateId ){ ... }

Link alterado para ação como tal:

@Html.ActionLink( "customize", "customize", new { TemplateId = template.Id } )

Acabo com um URL que se parece com

/template/customize?TemplateId=10

É mais feio, mas eu mantenho minha visão limpa com o model.Id, então isso é uma vitória para mi

questionAnswers(3)

yourAnswerToTheQuestion