Jquery 如何使用单击按钮从MVC中的SQL Server数据库一次检索一条记录

Jquery 如何使用单击按钮从MVC中的SQL Server数据库一次检索一条记录,jquery,sql-server,asp.net-mvc,Jquery,Sql Server,Asp.net Mvc,我想使用单击按钮从数据库中逐个显示记录。这是我在控制器中的操作方法 public ActionResult ApplyJobs(int? id, int x) { TblConsultancies consultancyJobs = _obj.TblConsultancies.ToList().Skip(x).FirstOrDefault(); return View(consultancyJobs); } JQuery AJAX代码: <script>

我想使用单击按钮从数据库中逐个显示记录。这是我在控制器中的操作方法

public ActionResult ApplyJobs(int? id, int x)
{
    TblConsultancies consultancyJobs = _obj.TblConsultancies.ToList().Skip(x).FirstOrDefault();
    return View(consultancyJobs);
}
JQuery AJAX代码:

 <script>
        var numberofRecords;
        $(document).ready(function () { 
            numberofRecords = 1;
        },
            function FetchRecord(){
                $.ajax({
                    type: "GET",
                    url: "/Home/ApplyJobs",
                    data: {
                        recNo: numberofRecords
                    },
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (response) {
                        numberofRecords+=1;
                        alert("success...");
                        var cars = response.d;
                        $('#output').empty();
                        $.each(cars, function (index, car) {
                            $('#output').append('<tr><td>' + car.Name + '</td></tr>');
                        });
                    },
                    failure: function (msg) {
                        $('#output').text(msg);
                    }
                });
            }

        );

    </script>

风险值记录;
$(文档).ready(函数(){
numberofRecords=1;
},
函数FetchRecord(){
$.ajax({
键入:“获取”,
url:“/Home/ApplyJobs”,
数据:{
记录编号:numberofRecords
},
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:功能(响应){
记录数+=1;
警惕(“成功…”);
var cars=响应d;
$(“#输出”).empty();
美元。每个(汽车,功能(索引,汽车){
$(“#输出”).append(“”+car.Name+“”);
});
},
故障:功能(msg){
$(“#输出”).text(msg);
}
});
}
);
HTML:

@Model.Name
当我手动输入
/Home/ApplyJobs?x=1
时,根据上述代码

它起作用了。但我只想在单击“下一步”按钮时显示


我怎样才能得到一张一张的记录?谢谢。

而不是注册下一个按钮的onclick事件,而是在对象上取消onclick属性

<input id="btnNext" type="button" title="Next" value="Next" onclick="FetchRecord()" />

var numberofRecords;
$(document).ready(function () {
    numberofRecords = 1;
}
function FetchRecord(){
    $.ajax({
                type: "GET",
                url: "/Home/ApplyJobs",
                data: {
                    recNo: numberofRecords
                },
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {
                    numberofRecords+=1;
                    alert("success...");
                    var cars = response.d;
                    $('#output').empty();
                    .each(cars, function (index, car) {
                        $('#output').append('<tr><td>' + car.Name + '</td></tr>');
                    });
                },
                failure: function (msg) {
                    $('#output').text(msg);
                }
            });
        });
}

首先是行动方法。您希望返回
tblconsulties
的下一个
Name
属性,该属性按其
ID
属性排序。因此,您需要传入当前的
ID
并返回下一个
ID
Name

[HttpGet]
公共JsonResult应用程序作业(int id)
{
//获取下一个TBL咨询
var next=_obj.tblconsulties.OrderBy(j=>j.ID).Where(j=>j.ID>ID).FirstOrDefault();
if(next==null)
{
返回null;
}
其他的
{
//选择ID和名称
var数据=新
{
ID=next.ID,
Name=next.Name
};
返回Json(数据,JsonRequestBehavior.AllowGet);
}
}
视图(不要将标记和行为混合使用)

@Model.Name
下一个
剧本

var ID='@Model.ID';//或var ID=1;如果您最初没有渲染对象
var url='@url.Action(“ApplyJobs”,“Home”);//不要硬编码url的!
变量输出=$(“#输出”);//缓存它
$(“#下一步”)。单击(函数(){
$.getJSON(url,{id:id},函数(数据){
如果(数据){
ID=data.ID;//重置当前ID
output.html(data.Name);//显示名称
}否则{
//没有其他对象-显示消息,是否禁用按钮?
}
});
});

错误:参数字典包含“***.Controllers.HomeController”中方法“System.Web.Mvc.JsonResult ApplyJobs(Int32)”的不可空类型“System.Int32”的参数“recNo”的空条目。可选参数必须是引用类型、可为null的类型或声明为可选参数。参数名称:参数变量“numberofRecords”的值在文档加载时设置为1。它怎么可能是空的。这里有没有代码可以设置为空?如果是这样,只需将方法的签名更改为publicJSONResult ApplyJobs(int?recNo)。但是这次您的linQ可能会失败。您是否注意到
numberofRecords
的作用域不同?是的,它是全局的。在文件上之前,任何地方都可以访问。你是吗?更新了我的代码。正如你所说。但它不起作用。我在你现在删除的前一个问题中对代码中的6个主要错误进行了评论,你在这里没有提到这些错误。这很容易解决,但如果不完全理解您想要显示的内容,我无法为您提供正确的解决方案。是要返回视图,还是要返回json?首次渲染视图时,是否最初显示第一个
tblconsulties
对象?是否还有任何其他内容需要显示
tblconsulties
对象?我想显示tblconsulties表中的“Name”。但这里的条件是,它一次只能显示一条记录。如果我点击“下一步”按钮,它将从表中获得下一条记录。我理解这一点。
tblconsulties
Name
属性是否是您唯一希望在视图中更新的内容(即在
中显示它)?当您首次显示视图时,是否在该
中显示任何内容(即第一个
tblconsulties
的名称)或者它只是空白?默认情况下,当我单击ApplyJobs选项卡时,它应该显示来自TBLConsulties的第一条记录(仅名称)。稍后,当我单击“下一步”按钮时,它将拉下一条记录。我只想在此div中显示名称。@Model.namererror'***.tblconsulties'不包含'Select'的定义,并且找不到接受'JobMessengerUI.tblconsulties'类型的第一个参数的扩展方法'Select'(是否缺少using指令或程序集引用?)异常详细信息:System.ArgumentException:parameters字典包含“JobMessengerUI.Controllers.HomeController”中方法“System.Web.Mvc.JsonResult ApplyJobs(Int32)”的不可为空类型“System.Int32”的参数“id”的空条目。可选参数必须是引用类型、可为null的类型或声明为可选参数。参数名称:参数这是因为您没有将ID传递给
ApplyJobs(int ID)
。请注意脚本第一行中的注释。如果您最初没有传递and对象,并且有权访问其ID,则需要传递某些内容(或者将方法更改为
ApplyJobs(int?ID)
,然后如果
ID
为null,则返回第一个obj
<input id="btnNext" type="button" title="Next" value="Next" onclick="FetchRecord()" />

var numberofRecords;
$(document).ready(function () {
    numberofRecords = 1;
}
function FetchRecord(){
    $.ajax({
                type: "GET",
                url: "/Home/ApplyJobs",
                data: {
                    recNo: numberofRecords
                },
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {
                    numberofRecords+=1;
                    alert("success...");
                    var cars = response.d;
                    $('#output').empty();
                    .each(cars, function (index, car) {
                        $('#output').append('<tr><td>' + car.Name + '</td></tr>');
                    });
                },
                failure: function (msg) {
                    $('#output').text(msg);
                }
            });
        });
}
public JsonResult ApplyJobs(int recNo)
{
    TblConsultancies consultancyJobs = _obj.TblConsultancies.ToList().Skip(recNo).FirstOrDefault();

    return Json(consultancyJobs);
}