webentwicklung-frage-antwort-db.com.de

mvc 3 Html.EditorFor HTML-Attribut hinzufügen funktioniert nicht

Ich versuche, HTML-Attribut für EditorFor hinzuzufügen

 @Html.EditorFor(model => model.UserName, new { style = "width: 100px" })

Aber wie auch immer ich komme

<input id="UserName" class="text-box single-line" type="text" value="" name="UserName">
19
Hryhorii

EditorFor wird diese Attribute überschreiben. Informationen zu Problemumgehungen finden Sie unter Html-Attribute für EditorFor () in ASP.NET MVC .

Wenn Sie nur die Anzeige der Breite ändern müssen und Sie sich nicht auf Editorvorlagen verlassen, können Sie stattdessen TextBoxFor verwenden

 @Html.TextBoxFor(model => model.UserName, new { style = "width: 100px" })
16
DMulligan

Ich hatte das gleiche Problem und dieses Problem wurde gelöst ...

<style type="text/css">
#UserName { 
    width: 100px; 
}
</style>

@Html.EditorFor(model => model.UserName)
7
BGTechie

@Html.EditorFor() entscheidet dynamisch über die Art des verwendeten Steuerelements basierend auf dem Modellelement.

Diese Anpassungen funktionieren mit @Html.LabelFor() von @Html.TextBoxFor(). Der folgende Code wurde getestet und funktioniert ordnungsgemäß.

Rasierer:

@Html.LabelFor(model => model.UserName, null, new { style = "display: inline;" })
@Html.TextBoxFor(model => model.UserName, null, new { style = "display: inline;" })

Generiertes HTML

<label style="display: inline;" for="UserName">
<input name="LastActivityDate" id="UserName" style="display: inline;" type="text" value=""/>

Bitte beachten Sie, dass das zweite übergebene Argument null ist, wobei style das dritte Attribut ist. Wenn @Html.EditorFor() ein Muss ist, müssen Sie anstelle von style die CSS-Klasse verwenden

@Html.EditorFor() auf MSDN

Hinweis: Der Code wurde mit MVC4 getestet und ist hoffentlich auch für MVC3 gültig

2
BiLaL

Anstatt zu verwenden 
@ Html.EditorFor (model => model.UserId) 
Benutzen
@ Html.TextBoxFor (model => model.UserId, neu {@Value = "Prabhat"})

1
Prabhat

Für das, was es wert ist, hatte ich dasselbe Problem. Ich habe es mit einer etwas anderen Version der Lösung von Narenda V gelöst. 

Ich habe eine Klasse wie diese erstellt: (Hinweis - Min-Breite statt Breite)

.userName { min-width:40em; }

dann aus meiner Sicht:

@Html.EditorFor(model => model.UserName, new { @class = "userName" })

Wenn ich nicht min-width verwendet habe, aber width, hat es nicht funktioniert . Bob

0
Bob T

Wenn Sie EditorFor und nicht TextBoxFor verwenden müssen und mehrere Editoren auf der Seite vorhanden sind, Sie müssen jedoch nur die Breite bestimmter Parameter ändern.

<style type="text/css">
    input#UserName { width: 100px; }
</style>
0
Mike B