Вызов метода действия в MVC с jQuery и не работающими параметрами - PullRequest
4 голосов
/ 28 декабря 2010

Я пытаюсь вызвать метод действия в приложении MVC, используя jQuery. По сути, я хочу взять значение пары полей ввода и вызвать метод действия, нажав кнопку, передавая значения полей ввода в качестве параметров. Но я получаю только значение параметра «число», а не «год».

    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');
            });
        });
    }

Я проверил URL с предупреждением, как вы можете видеть, и, похоже, оно хорошо содержит оба значения. Но когда я проверяю значение параметра year в методе action, оно становится нулевым.

Вот поля ввода:

<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" />

И начало действия метода:

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

Я знаю, что это выглядит странно, а не просто связывать поля, но причина в том, что эти поля ввода и их значения не являются основной целью этого представления. Они просто хотят выбрать еще одну неделю в этом приложении. И, кроме того, я собираюсь заменить поля ввода календарем jQuery, поэтому мне все равно придется делать что-то вроде этого.

Так, каков самый простой способ сделать это, и почему он не работает как есть?

Ответы [ 2 ]

6 голосов
/ 28 декабря 2010

Попробуй так:

var number = $('#selectWeekId').val();
var year = $('#selectYearId').val();
var url = '<%: Url.Action("Edit") %>';
$.get(url, { number: number, year: year }, function (data) {
    alert('Test');
});
6 голосов
/ 28 декабря 2010

Я обычно использую второй параметр jQuery метода $ .get для ввода параметров URL. Вот пост (asp.net mvc 1, но все еще действительный пример):

http://blog.bobcravens.com/2009/11/ajax-calls-to-asp-net-mvc-action-methods-using-jquery/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...