我正在使用asp.net web api。我正在使用MVC。我试着打电话给ajax电话,但总是给我404错误。
我尝试没有三个参数" Hash"," AccessKey"," Path" - 然后它允许我调用http://www.xxx.xys/rest/createnew的方法并按照我的意愿给出响应。
但是当我添加这三个(" Hash"," AccessKey"," Path")参数时,它总是给我错误找不到(404)错误。
这里没有因跨域而导致的错误,因为它运行良好,没有三个参数。 我想传递三个参数作为参数而不是标题requset中的对象CreateParameter.not的属性。只是我想在参数中传递它们。
function CreateTicket() {
$.ajax({
url: 'http://www.xxx.xys/rest/createnew',
type: 'POST',
dataType: 'json',
data: {
MerchantID: $("#txtMerchantID").val(), TicketCategoryID: $("#txtTicketCategoryID").val(), GroupID: $("#txtGroupID").val(), TicketSubCategoryID: $("#txtSubCategoryID").val(), TicketPriorityID: $("#txtTicketPriorityID").val(), Summary: '' + $("#txtSubject").val() + '',
Hash: "EI2nkSoqRN5cBO/ctXF90tl+c0UTW/euI8NZwsG8ZBE=", AccessKey: "d357cf6e-bb14-452e-8044-68c699503c2b", Path: "api/TicketAPIs/GetTicketsByFilter"
},
crossDomain: true,
ContentType: "application/json; charset=utf-8",
success: function (data) {
if (data.IsSuccess) {
alert('created');
}
else {
alert('error');
}
},
error: function (data) {
alert('error');
}
});
}
和
[HttpPost]
public CreateTicketResult createnew([FromBody]CreateParameter ObjParameter,string Hash, string AccessKey, string Path)
{
//code here
}
and I have also tried with below but not working.
[HttpPost]
public CreateTicketResult createnew(CreateParameter ObjParameter,string Hash, string AccessKey, string Path)
{
//code here
}
public class CreateParameter
{
public int MerchantID { get; set; }
public short TicketCategoryID { get; set; }
public short GroupID { get; set; }
public short TicketSubCategoryID { get; set; }
public short TicketPriorityID { get; set; }
public string Summary { get; set; }
}
所以我想通过 MerchantID,TicketCategoryID,GroupID,TicketSubCategoryID,TicketPriorityID,Summary作为CreateParameter对象的属性以及这三个(" Hash"," AccessKey"," Path")分开参数 如函数createnew的签名所示。但无法做到这一点。
答案 0 :(得分:1)
编辑回答 在控制器中试试这个:
public CreateTicketResult createnew(string MerchantID, string TicketCategoryID, string GroupID, string TicketSubCategoryID, string TicketPriorityID, string Summary,string Hash, string AccessKey, string Path)
{
CreateParameter ObjParameter = new CreateParameter();
ObjParameter.MerchantID = MerchantID;
ObjParameter.TicketCategoryID = TicketCategoryID;
ObjParameter.GroupID = GroupID;
ObjParameter.TicketSubCategoryID = TicketSubCategoryID;
ObjParameter.TicketPriorityID = TicketPriorityID;
ObjParameter.Summary = Summary;
//code..........
//code.......
}
否则,使用make一个json对象并在请求中传递它,这样你就可以在控制器中解码,但上面的方法要容易得多。这完全取决于您的偏好。