asp.net - 使用 jQuery 和参数在 MVC 中调用操作方法不起作用

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

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

    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,如您所见,它似乎包含两个值都很好。但是当我检查操作方法中的年份参数的值时,它是空的。

以下是输入字段:

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

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

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

最佳答案

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

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

关于asp.net - 使用 jQuery 和参数在 MVC 中调用操作方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4542333/

相关文章:

asp.net - 在 .NET 4 下编译时出现 "An entry with the same key already exists"

javascript - 如果 CDN 不可用,则 RequireJS 回退

javascript - jQuery 如何通过属性查找数组中的元素

asp.net - MVC 中页面不存在

c# - 更新面板中的 ASP.Net AjaxControlToolkit AsyncFileUpload 使用母版页 c# 在服务器端代码中创建

c# - 将字节数组插入 SQL Server 数据库表

javascript - 如何在 JavaScript 或 jQuery 中规范化 HTML?

asp.net - ASP .NET MVC2 中的 Web 服务

jquery - 如何在母版页的表单元素中添加隐藏字段

c# - 在已经登录的情况下处理登录期间的防伪造错误? ASP.NET MVC