ASP.NET MVC 3 mit Razor DropDownListFor ändern, nicht Schießen
Ich habe gesehen, eine Menge Fragen, auf die hier Bezug DropDownList und DropDownListFor Ereignisse, die nicht brennen, aber keine Antworten, die mein problem lösen. Ich glaube nicht, ich habe etwas übersehen also poste ich meine eigene Frage...
Ich habe folgenden code in meine View:
@model MyWebApp.ViewModels.ProductAdminViewModel
@{
ViewBag.Title = "Manage Products";
}
<script type="text/javascript">
$(function () {
$('select#CurrentCategoryId').change(function () {
alert('We got here!');
})
});
</script>
@using (Ajax.BeginForm(new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "indexGrid" }))
{
<fieldset>
<legend>Select Category</legend><span>Category: </span>
@Html.DropDownListFor(model => model.CurrentCategoryId, Model.CategorySelectList, new { @id = "CurrentCategoryId" })
</fieldset>
}
<div id="indexGrid">
@Html.Partial("_indexGrid", Model)
</div>
Dem drop-down ist ordnungsgemäß gefüllt aus der Auswahlliste in meinem ViewModel und die einzige andere Sache zu beachten ist, dass die CurrentCategoryId in der VM ist ein öffentliches int-Eigenschaft.
Was habe ich übersehen binden Sie die Dropdownliste, um das Skript?
EDIT: ich habe Folgendes in meiner _Layout.cshtml-Datei:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<script type="text/javascript" src="/Scripts/prototype.js"></script>
<script type="text/javascript" src="/Scripts/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="/Scripts/lightbox.js"></script>
<script type="text/javascript" src="/Scripts/jquery-ui-1.8.16.custom.min.js"></script>
<script type="text/javascript" src="/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<script type="text/javascript" src="/Scripts/EditorTypes.js"></script>
Dank @Hawkke. Dies ist mein Arbeits-code:
<script type="text/javascript">
function CategoryChanged(newCategoryId) {
alert('The category has been changed!');
};
</script>
...
@Html.DropDownListFor(model => model.CurrentCategoryId, Model.CategorySelectList, new { @onchange = "CategoryChanged(" + @Model.CurrentCategoryId + ")" })
- Sie haben jQuery referenziert überall?
- Aktualisiert mit Referenzen
- Können Sie fügen Sie den html-output?
Du musst angemeldet sein, um einen Kommentar abzugeben.
'select#CurrentCategoryId'
erwartet ein Steuerelement mit dem Namen 'CurrentCategoryId', aber der name Ihrer dropdown-Liste der VM-id.Bearbeiten
Was ich tun würde, ändern Sie Ihre javascript-jQuery-Funktion eine normale Funktion.
Dann ändern Sie Ihre html-helper:
Ich bin nicht 100% auf die razor-syntax, aber ich denke, Sie bekommen die Idee.