我有Controller
OrderAssignmentRuleSet
和以下ActionResult
方法
public ActionResult OrderAssignmentRuleSetEdit(string customerId, string Name= null, List<string> listOfItems = null)
{
}
下面是我的Javascript
将数据传递到上面的controller
方法
$("#rolesValues").change(function () {
var id ='0001'
var name = 'admin'
var listOfItems= [];
//Populating listofItems with multiselect dropdown
if ($('#ddlItemsList option:selected').length > 0) {
listOfItems = $.map($('#ddlItemsList option:selected'), function (item) {
return item.value;
});
}
var data = {
customerId: id,
Name: name,
listOfItems: listOfItems
}
$.ajax({
type: 'POST',
url: '/OrderAssignmentRuleSet/OrderAssignmentRuleSetEdit',
traditional : true,
data: data,
content: "application/json;",
dataType: "json",
success: function () {
}
});
我的问题是将两个strings
(id和名称)和一个array
(以listofItems作为列表)传递给controller
,当前代码不返回任何内容。请帮助这段代码有什么问题吗?
答案 0 :(得分:3)
您正在尝试以POST
方法发送已发布的数据。但是您正在尝试使用操作方法在查询参数中收集这些数据。
所以尝试创建一个像这样的类
public class Sample
{
public string customerId { get; set; }
public string Name { get; set; }
public List<string> listOfItems { get; set; }
}
然后修改您的操作方法,例如
public ActionResult OrderAssignmentRuleSetEdit([FromBody] Sample sample)
{
//Your stuff here
}
答案 1 :(得分:0)
您可以通过这种方式解决您的问题。
myCustomFunction = function () {
var model = {
customerId: '',
Name: '',
listOfItems: ''
};
var url = '/OrderAssignmentRuleSet/OrderAssignmentRuleSetEdit';
model.customerId = $("#customerId").val();// get customer id.
model.Name = $("#Name").val();// get name;
model.listOfItems = [];//get value of list;
$.ajax({
url: url,
type: "Post",
data: JSON.stringify(model),
dataType: "json",
contentType: "application/json"
}).done(function (response) {
console.log(response);
}).fail(function (response) {
console.log(response);
});
},
//在服务器端获取数据,建立一个模型作为客户端需求。
[HttpPost]
public virtual JsonResult OrderAssignmentRuleSetEdit(MyCustomModel model)
{
try
{
ValidationViewModel msg = new ValidationViewModel();
return Json(new { success = msg.Result, message = msg.Message }, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
return Json(new { success = false, message = ex.Message }, JsonRequestBehavior.AllowGet);
}
}