繁体   English   中英

如何从 OnGet 或 OnPost 方法返回值到 ajax

[英]How to return a value from OnGet or OnPost method to in ajax

我有一个 c# class 像下面的示例代码

public IActionResult OnPostTranJarray(int transaction_number, string cardholder)
    {
    
    dynamic Trans = GetTransactions(transaction_number,cardholder);
    
    return Trans;
   }

或者

public JArray Transactions { get; set; }
public void OnGet(int transaction_number)
{
  Transactions =  GetTransactions(transaction_number);   
}

只是想在 IndexModel Class 中进行后调用。 我在 jquery 中使用了以下代码

 $.post("https://localhost:7197/Transactions?handler=TranJarray?transaction_number="+transactionNumb+"&cardholder="+cardHolderName, response => { 
      alert("response",response);
    });

$.ajax({
type: "POST",
url: "https://localhost:7197/Transactions?handler=TranJarray?transaction_number="+transactionNumb+"&cardholder="+cardHolderName,
contentType: "application/json; charset=utf-8",
dataType: "json",    
async: true,
cache: false,
success: function (data)
{  
    alert("success");
    fnLoadTbl();
  
}
});

但它没有达到方法..但是如果我让 ajax GET 请求到 OnGet 方法,它会达到但没有返回任何值。 如果您有任何想法,请告诉我。 谢谢..

为了从您的OnGet方法返回 JSON,请将返回类型从void更改为IActionResult并返回JsonResult ,例如:

public JArray Transactions { get; set; }

public IActionResult OnGet(int transaction_number)
{
  Transactions =  GetTransactions(transaction_number);   
  return new JsonResult(Transactions);
}

最后我通过做这些得到了解决方案

  1. 我们必须像这样创建 model class

     public class PersonModel { [BindProperty] public int TransactionNumber { get; set; } [BindProperty] public string FormName { get; set; } }

2.创建了onpost方法

 public void  OnPostSubmit(PersonModel person)
    {        
        this.trnTable =   GetTransactions(person.TransactionNumber,
        person.FormName);       
       
    }

3.在前端我们应该有一个 type="submit" 按钮在里面

 <form id="statementId" method="post">
    <div class="row">
        <dl  class=" col-2 dl-horizontal">
                <div class="form-group" style="max-width: 200px;">
                 <label>Form</label>
                <input id="form" name="FormName" type="text" class="form-control" placeholder="Form">
                 <i class="form-group__bar"></i>
            </div>
        </dl>
    
        <dl class=" col-2 dl-horizontal">
        <div class="form-group" style="max-width: 200px;">
                            <label>Transaction Number</label>
                             <input type="text" name="TransactionNumber" placeholder="Type" class="form-control" >
                              <i class="form-group__bar"></i>
        </div>
        </dl>
     </div>
            <input style="max-width: 100px;max-height: 40px;margin-left: 10px;"  class="btn btn-primary" type="submit" value="Submit" asp-page-handler="Submit"/>
</form>

然后它完美地工作..但感谢那些试图回答它的人

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM