Pergunta

Quero definir manualmente o id e o nome da caixa de texto assim:

<%: Html.TextBoxFor(model => model.Name, new { @id = "txt1", @name = "txt1" })%>

Mas apenas o id é alterado, não o atributo name, por quê?

<input id="txt1" name="Name" type="text" value="">

Obrigado!

Foi útil?

Solução

Você não pode usar a versão lambda fortemente tipada para isso, você precisará usar a versão mais antiga

Html.TextBox("txt1",new {@id = "txt1"})

Outras dicas

Tudo bem:

<%: Html.TextBoxFor(model => model.Name, new { Name = "txt1" })%> 

Tu escreves "Nome" em vez de "nome"?

Saída:

<input  name="txt1" type="text" value=""> 

Na verdade você pode...Apenas use Name com a primeira letra maiúscula em vez de name:

@Html.TextBoxFor(model => model.Property, new { Name = "myName" })

Se você ainda precisar usar TextBoxFor(), você pode alterar o nome da propriedade em seu modelo, o que deve ser fácil se você estiver usando ViewModels dedicados conforme recomendado.No entanto, admito que é uma recomendação que nem sempre sigo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top