Tuizi
Tuizi

Reputation: 1673

MVC2: Impossible to change the name with TextBoxFor?

I want to manually define id and name for textbox like that:

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

But only the id is changed, not the name attribute, why?

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

Thank you!

Upvotes: 6

Views: 7112

Answers (4)

Leniel Maccaferri
Leniel Maccaferri

Reputation: 102448

Actually you can... just use Name with first letter capitalized instead of name:

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

Upvotes: 10

sandro
sandro

Reputation: 187

This is ok:

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

Do you write "Name" instead of "name"?

Output:

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

Upvotes: 17

Nick Albrecht
Nick Albrecht

Reputation: 16938

If you still need to use TextBoxFor(), you can change the name of the property on your model, which should be easy if you're using dedicated ViewModels as is recommended. However I admit it's a recommendation I don't always follow myself.

Upvotes: 1

Paul Creasey
Paul Creasey

Reputation: 28894

You can't use the strongly typed lambda version for this, you'd need to use the older version

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

Upvotes: 5

Related Questions