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?
Schreibe einen Kommentar