L'appel de méthode d'action dans MVC avec jQuery et les paramètres ne fonctionne pas

Je suis en train de faire appel à une méthode d'action dans une application MVC à l'aide de jQuery. Fondamentalement, ce que je veux, c'est de prendre la valeur d'un couple de champs de saisie et d'appeler la méthode d'action en cliquant sur un bouton, en transmettant les valeurs des champs de saisie en tant que paramètres. Mais je seulement obtenir la valeur de la "numéro de paramètre", pas le "an" de paramètre.

    function selectWeek() {
        $('#selectWeekButton').click(function (event) {
            var number = $("#selectWeekId").val();
            var year = $("#selectYearId").val();
            var actionUrl = '<%: Url.Action("Edit", new { number="WEEKPLACEHOLDER", year="YEARPLACEHOLDER" }) %>'

            var yearUrl = actionUrl.replace('YEARPLACEHOLDER', year);

            var url = yearUrl.replace('WEEKPLACEHOLDER', number);
            alert(url);
            $.get(url, function (data) {
                alert('Test');
            });
        });
    }

J'ai vérifié l'url avec une alerte, comme vous pouvez le voir, et il semble contenir à la fois des valeurs d'amende. Mais quand je vérifie la valeur du paramètre de l'année dans la méthode d'action, il est nul.

Ici sont les champs de saisie:

<span>Vecka: </span>
        <input type="text" id="selectWeekId" />
        <span>År: </span>
        <input type="text" id="selectYearId" />
        <input type="button" value="Välj vecka" id="selectWeekButton" />

Et le début de la méthode d'action:

public ActionResult Edit(string number, string year) 
//etc...

Je sais que cela ressemble à une chose étrange à faire au lieu de simplement la liaison des champs, mais la raison en est que ces champs de saisie et leurs valeurs n'est pas le but principal de ce point de Vue. Ils sont juste là pour sélectionner une autre semaine dans cette feuille de temps de l'application. Et d'ailleurs, je vais remplacer les champs de saisie avec jQuery calendrier, et donc je vais encore faire quelque chose comme cela.

Alors, quelle est la meilleure façon de le faire, et pourquoi n'est-il pas de travail tel qu'il est?

Pas sûr, mais je pense que c'est un problème de routage.

OriginalL'auteur Anders | 2010-12-27