asp.net 如何向多个带数据参数的模型类发送 AJAX 请求?

3phpmpom  于 2023-08-08  发布在  .NET
关注(0)|答案(4)|浏览(107)

我正试图发送 AJAX 请求到一个控制器动作,该动作将一个类作为参数,其中包含多个模型。我已经找到了从多个模型中向一个特定模型发送请求的方法。但我面临的问题是如何为目标模型绑定参数。
要求:

function EditModalOnComplete() {
        var modelData = { Data: "euro", Type: null, PosNumber: 0, OrderNumber: 0, ServerName: 
        "serverDefualted" }
        var modelName = { "orderModel":modelData}
       $.ajax({
           url: '@Url.Action("SearchResult", "Orders")',
           data:modelName ,
           success: function (){
       },
       error:function (xhr, ajaxOptions, thrownError){
              alert(xhr.responseText);
            }
        });
    }

字符串
控制器操作:

public ActionResult SearchResult(BindedModels models)
    {
 //Code 
return View();
    }


组合模型类

public class BindedModels 
{
    public OrderModel orderModel{ get; set; }
    public DetailsModel details{ get; set; }
}


型号类别:

public class orderModel
    {
        public string  Data{ get; set; }
        public int? Type{ get; set; }
        public int? PosNumber{ get; set; }
        public int? OrderNumber{ get; set; }
        public string ServerName { get; set; }

    }


我想将modelData和请求沿着发送给称为orderModel的模型,并将这些数据提供给它。我怎么能做到呢。当我检查代码时,我确实得到了模型,但它的数据为空。

rwqw0loc

rwqw0loc1#

我认为你的问题可能是你需要把你的模型串起来。
在 AJAX 调用中替换它:

data:model,

字符串
用这个:

data: JSON.stringify(model),


我假设你的代码示例中有一个错别字,因为你在创建JS对象时使用了modelName,但在实际调用中传递了model,除非这是它不工作的原因,这很可能是这种情况。
我还注意到你丢失了请求类型和内容类型:

type: "POST",
contentType: "application/json"


所以把它们放在一起:

$.ajax({
       type: "POST",
       contentType: "application/json",
       url: '@Url.Action("SearchResult", "Orders")',
       data:JSON.stringify(modelName),
       success: function (){
   },
   error:function (xhr, ajaxOptions, thrownError){
          alert(xhr.responseText);
        }
    });


并确保使用[HttpPost]属性标记控制器的操作:

[HttpPost]    
public ActionResult SearchResult(BindedModels models)

b91juud3

b91juud32#

修复 AJAX :

function EditModalOnComplete() {

        var modelData ={ orderModel: { Data: "euro", Type: null, PosNumber: 0, 
OrderNumber: 0, ServerName: "serverDefualted" }, details: {} };
        
       $.ajax({
           url:  "/Orders/SearchResult",
           data:modelData ,
           success: function (){
       },
       error:function (xhr, ajaxOptions, thrownError){
              alert(xhr.responseText);
            }
        });
    }

字符串

fcy6dtqo

fcy6dtqo3#

/* 问题出该高速缓存上 */
public void run(){

var modelData ={ orderModel: { Data: "euro", Type: null, PosNumber: 0,

字符串
订单号:0,服务器名称:“serverDefualted”},详细信息:[详细]

$.ajax({
       url:  "/Orders/SearchResult",
       data:modelData ,
       cache: false,
       success: function (){
   },
   error:function (xhr, ajaxOptions, thrownError){
          alert(xhr.responseText);
        }
    });
}

llew8vvj

llew8vvj4#

$.ajax({ type: "POST", contentType: "application/json", url: '@Url.Action("SearchResult", "Orders")', data:modelName, cache:false, success: function (){ }, error:function (xhr, ajaxOptions, thrownError){ alert(xhr.responseText); } });

字符串

相关问题