如何使用 $.ajax 发送由模型和列表(或 IEnumerable)模型组成的对象?
How to send a Object composed by Models and List (or IEnumerable) Models using $.ajax?
这是我的模型对象
public class VentaProd
{
public IEnumerable<product> ListadoProductos {get; set;}
public IEnumerable<account> ListadoClientes { get; set; }
public sale Venta { get; set; }
}
如果我使用这个代码
$.ajax(
{
type: "Post",
dataType: "html",
url: '@Url.Action("buscarproducto", "detalle")',
data: {
vp: @Model.Venta.id
},
success: function (data) {
$('#divbuscar').html(data);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("algo salio mal" + errorThrown);
}
}
);
之前的代码有效,但我的控制器收到一个空对象,如果我更改此代码
data: {
vp: @Model.Venta.id
},
来自
data: {
vp: @Model
},
从未调用控制器方法
不幸的是我不能使用第一个代码,因为
我的对象 VentaProd
没有保存在数据库中并且没有 ID。
这是控制器方法
public ActionResult buscarproducto(ejercicio1.Models.ClasesCombinadas.VentaProd vp=null)
{
return PartialView(vp);
}
如果您只想将选择的 ID 发回,则需要更改控制器方法的签名以仅匹配 ID 的类型:
public ActionResult buscarproducto(int? id=null)
如果你想让模型作为一个整体回到你现有的控制器方法,那么你需要对其进行编码:
vp: @Json.Encode(Model.Venta)
这是我的模型对象
public class VentaProd
{
public IEnumerable<product> ListadoProductos {get; set;}
public IEnumerable<account> ListadoClientes { get; set; }
public sale Venta { get; set; }
}
如果我使用这个代码
$.ajax(
{
type: "Post",
dataType: "html",
url: '@Url.Action("buscarproducto", "detalle")',
data: {
vp: @Model.Venta.id
},
success: function (data) {
$('#divbuscar').html(data);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("algo salio mal" + errorThrown);
}
}
);
之前的代码有效,但我的控制器收到一个空对象,如果我更改此代码
data: {
vp: @Model.Venta.id
},
来自
data: {
vp: @Model
},
从未调用控制器方法
不幸的是我不能使用第一个代码,因为
我的对象 VentaProd
没有保存在数据库中并且没有 ID。
这是控制器方法
public ActionResult buscarproducto(ejercicio1.Models.ClasesCombinadas.VentaProd vp=null)
{
return PartialView(vp);
}
如果您只想将选择的 ID 发回,则需要更改控制器方法的签名以仅匹配 ID 的类型:
public ActionResult buscarproducto(int? id=null)
如果你想让模型作为一个整体回到你现有的控制器方法,那么你需要对其进行编码:
vp: @Json.Encode(Model.Venta)