【问题标题】:Calling action method in MVC with jQuery and parameters not working使用 jQuery 和参数在 MVC 中调用操作方法不起作用
【发布时间】:2010-12-27 22:37:55
【问题描述】:

我正在尝试使用 jQuery 在 MVC 应用程序中调用操作方法。基本上我想要的是获取几个输入字段的值并通过单击按钮调用操作方法,将输入字段的值作为参数传递。但我只得到“数字”参数的值,而不是“年份”参数。

    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,它似乎包含两个值都很好。但是当我在 action 方法中检查 year 参数的值时,它是 null。

这里是输入字段:

<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...

我知道这看起来很奇怪,而不是仅仅绑定字段,但原因是这些输入字段和它们的值并不是这个 View 的主要目的。他们只是在此时间表应用程序中选择另一周。此外,我最终将用 jQuery 日历替换输入字段,所以我仍然需要做这样的事情。

那么最简单的方法是什么,为什么不能按原样工作?

【问题讨论】:

  • 不确定,但我认为这是一个路由问题。

标签: asp.net jquery asp.net-mvc-2


【解决方案1】:

我通常使用$.get方法的jQuery第二个参数来输入URL参数。这是一个帖子(asp.net mvc 1,但仍然是一个有效的例子):

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

【讨论】:

  • 漂亮!现在我看到它似乎很明显,我想我对 jQuery 还不够熟悉,还没有看到这些东西。非常感谢!
【解决方案2】:

试试这样:

var number = $('#selectWeekId').val();
var year = $('#selectYearId').val();
var url = '<%: Url.Action("Edit") %>';
$.get(url, { number: number, year: year }, function (data) {
    alert('Test');
});

【讨论】:

  • 很好的例子。不幸的是,rcravens 打败了你,同样的想法 :-p 但还是非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多