【发布时间】:2019-10-10 09:17:05
【问题描述】:
我正在尝试创建一个网页来显示 SQL Server 中表中的列。若干列必须具有选择列表,并且若干列的值必须根据所选项目而改变。
例如,我有一个名为Accounts 的表,它有一个AccountNumber 和AccountName 列。我希望网页上的 AccountName 单元格根据选择列表中的 AccountNumber 选择进行更改。我尝试使用 JavaScript 和 jQuery 将 AccountNumber 传递给获取 AccountName 的 C# 方法,但是当我进行选择和调试时,我收到一条错误消息,指出接收到的方法的参数不能为空。
JavaScript
function getAccountNumber(x) {
var selectedAccountNumber = document.getElementById(x.id).value;
var isNumber = isNaN(selectedAccountNumber);
if (!isNumber) {
var accountNumber = parseInt(selectedAccountNumber, 10);
var accountName = $.post('@Url.Action("GetAccountName", "Statements")', accountNumber);
alert(accountName);
}
}
C#
public string GetAccountName(int ID)
{
var item = db.Accounts.Where(acc => acc.AccountNumber == ID).Select(acc => acc.AccountName).Single();
return item;
}
我不知道为什么它没有正确传递参数。
【问题讨论】:
-
请看官网详细说明,$.post的使用方法api.jquery.com/jQuery.post
-
问题是:你不能!直接调用代码....您需要调用和端点。也就是暴露代码 c# 的东西,这通常是使用 Web 项目 (MVC) 完成的。你需要首先修复你如何暴露你的 c# 然后玩弄 java 脚本。
-
您是否缺少动作上方的 Post 装饰器?
-
@schlonzo 是的。我认为它会干扰该方法,因为它的前缀是“GET”。
-
@IsaacOpperman 那你为什么要使用 $.post 呢?
标签: javascript c# asp.net-mvc