2017-01-30 3 views
0

immer ich habe diese auf meiner TeilansichtJQuery nicht Wert von EditorFor

@Html.EditorFor(model => model.DirectorsEntity.ApplicationDate, new { @class = "form-control", @id="appdate" }) 

in meinem jquery Ich habe:

var appdate = $("#appdate").val(); 

Leider ist es als undefiniert zurück kommen.

Ich ändere meine EditorFor zu TextBox für, es funktioniert, aber ich bevorzuge wirklich EditorFor. Hat jemand eine Idee, warum man arbeiten würde und der andere nicht?

@Html.TextBoxFor(model => model.DirectorsEntity.ApplicationDate, new { @class = "form-control", @id="appdate" }) 
+0

Weil 'EditorFor()' nicht erlaubt Ihre HTML-Attribute, wenn Sie mit MVC-5.1 oder höher, und wenn Sie sind, dann ist es nicht das richtige Format sowieso (siehe die Betrogene) hinzuzufügen. Ihre 'EditorFor()' generiert 'id = "DirectorsEntity_ApplicationDate" ', also benutzen Sie einfach' var appdate = $ ("#" DirectorsEntity_ApplicationDate "). Val();' –

+0

Das war's. Danke – Dan

Antwort

0

, wenn Sie ‚Editorfor‘, wie in dem folgenden Code1 Beispiel zu verwenden, es erzeugt ein Eingabetextelement mit & id Namen wie in Code2 Beispiel Eigenschaftsnamen gesetzt.

Code1:

@Html.EditorFor(m => m.UserName) 

Code2:

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

Wenn Sie separate ID verwenden für 'Editorfor', wird es nicht funktionieren, da seine die Standard-ID nehmen. Verwenden Sie den Eigenschaftennamen in der ID-Auswahl in jquery.

0

Können Sie das bitte versuchen?

@Html.EditorFor(model => model.DirectorsEntity.ApplicationDate, new { htmlAttributes = new { @class = "form-control",@id= "appdate" } }) 
+0

Ich habe zwei völlig verschiedene Antworten erhalten (eine von Ihnen und eine von Stephen) und sie haben beide Recht .. Danke – Dan

+0

Herzlich Willkommen :) –