C# Asp.net Core 3.1,使用Ajax在视图上显示json数据

C# Asp.net Core 3.1,使用Ajax在视图上显示json数据,c#,asp.net,asp.net-mvc,asp.net-core,model-view-controller,C#,Asp.net,Asp.net Mvc,Asp.net Core,Model View Controller,我想从GetPatient函数中加载数据,并在视图上创建标签。这就是我到目前为止所拥有的,它是通过id获取数据,但不是将其作为json或显示在所述标签上。我该如何解决这个问题 也许你可以试试这个: [HttpGet] public IActionResult GetPatient(int id = 0) { if (id == 0) { return View(new Appointments()); } else {

我想从GetPatient函数中加载数据,并在视图上创建标签。这就是我到目前为止所拥有的,它是通过id获取数据,但不是将其作为json或显示在所述标签上。我该如何解决这个问题


也许你可以试试这个:

[HttpGet]
public IActionResult GetPatient(int id = 0)
{
     if (id == 0)
     {
         return View(new Appointments());
     } 
     else
     {
         var patient = _context.Mstr_Patients.Find(id);

         if(patient == null)
         { 
             return StatusCode(404);
         } 

         var serialized = JsonConvert.SerializeObject(patient);

         //This will make your content-type as JSON.
         return Content(serialized, "application/json");
      }   
}
在你看来:

注意:我不是100%确定,但在AJAX调用中,您可能需要更改:
data:{id:id}到data:{id:id}

我看不出您的代码中有任何问题,应该可以正常工作。当您说但不作为json返回时,它实际返回什么?您在浏览器开发者控制台中检查过吗?@Roman.Pavelko我该怎么做?我是新手!如果您使用的是Chrome,请按F12,转到网络选项卡,选择XHR选项卡,单击视图上的按钮并检查控制台中显示的GetPatient result。尝试此操作后,脚本未调用Getpaient函数,idk why。脚本上有语法错误吗?我似乎想不出来。点击按钮时什么也没发生。我已经更改了上面的onclick函数,你能试试这个吗?您应该调试这个,我的意思是关于onclick函数或ajax调用的错误
[HttpGet]
public IActionResult GetPatient(int id = 0)
{
     if (id == 0)
     {
         return View(new Appointments());
     } 
     else
     {
         var patient = _context.Mstr_Patients.Find(id);

         if(patient == null)
         { 
             return StatusCode(404);
         } 

         var serialized = JsonConvert.SerializeObject(patient);

         //This will make your content-type as JSON.
         return Content(serialized, "application/json");
      }   
}
<script>

    function GetPatient(){
       var PID = document.getElementById("#PID");  
       var id = PID.val();
       $.ajax({
            type: "GET",            
            url: "@Url.Action("GetPatient")";
            contentType: "application/json",
            dataType: "json",
            data: {"id": id}
            success: function (data) {
                $("#PID").html(data.PatientID);
            }
     }

     var btnSearch = document.getElementById("#btnSearch");

     btnSearch.onclick = () => {
            GetPatient();
     }

</script>