常量400响应,向MVC控制器发送复杂的javascript对象
又是一个MVC问题。总有一天,我会看着自己的“MVC学习日”微笑 因此,正如标题所表明的那样,切中要害;一个持续的400条回复,我已经读了很多关于SO的帖子,但似乎仍然无法让我的逻辑发挥作用。如果我能告诉你逻辑,也许有人能帮我 控制器:常量400响应,向MVC控制器发送复杂的javascript对象,javascript,c#,ajax,asp.net-mvc,Javascript,C#,Ajax,Asp.net Mvc,又是一个MVC问题。总有一天,我会看着自己的“MVC学习日”微笑 因此,正如标题所表明的那样,切中要害;一个持续的400条回复,我已经读了很多关于SO的帖子,但似乎仍然无法让我的逻辑发挥作用。如果我能告诉你逻辑,也许有人能帮我 控制器: public JsonResult CreateExtendedProperty(ExtendedPropertyDefinitionViewModel extendedPropertyDefinitionViewModel) { //I origina
public JsonResult CreateExtendedProperty(ExtendedPropertyDefinitionViewModel extendedPropertyDefinitionViewModel)
{
//I originally had JsonResult as ActionResult, still no change.
var p = extendedPropertyDefinitionViewModel;
//Temp
//return Json(new { Success = false, ErrorMessage = "Error creating property" });
}
Ajax/Javascript:
var extendedPropertyDefinition = JSON.stringify({
DefinitionId: '0',
Title: propertyInfo["Title"],
OrganisationId: '0',
Organisation: '',
TypeId: propertyInfo["TypeId"],
SortOrder: 0,
IsEnumerated: propertyInfo["IsEnumerated"],
AllowMultiSelect: propertyInfo["AllowMultiSelect"],
IsDate: propertyInfo["IsDate"],
LastUpdatedBy: "",
LastUpdatedDateTime: new Date().toISOString(),
CreatedBy: "",
CreatedByDateTime: new Date().toISOString(),
Options: {
OptionId: '0',
Option: '',
OptionValue: '',
SortOrder: 0,
LastUpdatedBy: '',
LastUpdatedDateTime: new Date().toISOString(),
CreatedBy: '',
CreatedByDateTime: new Date().toISOString(),
}
});
$.ajax({
url: "<%= Url.Action('CreateExtendedProperty', 'Organisation') %>",
contentType: "application/json; charset=utf-8",
dataType: "json",
//traditional: true,
type: 'POST',
data: extendedPropertyDefinition,
success: function(e) {
alert('success');
//Rebuild Grid?
},
error: function(e) {
alert('request failed (500)');
}
});
var extendedPropertyDefinition=JSON.stringify({
定义ID:“0”,
标题:propertyInfo[“标题”],
组织ID:“0”,
组织:'',
TypeId:propertyInfo[“TypeId”],
排序器:0,
IsEnumerated:propertyInfo[“IsEnumerated”],
AllowMultiSelect:propertyInfo[“AllowMultiSelect”],
IsDate:propertyInfo[“IsDate”],
LastUpdatedBy:“”,
LastUpdateDateTime:new Date().toISOString(),
创建日期:“,
CreatedByDateTime:new Date().toISOString(),
选项:{
OptionId:'0',
选项:“”,
OptionValue:“”,
排序器:0,
LastUpdatedBy:“”,
LastUpdateDateTime:new Date().toISOString(),
由“”创建,
CreatedByDateTime:new Date().toISOString(),
}
});
$.ajax({
url:“”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
//传统的:是的,
键入:“POST”,
数据:extendedPropertyDefinition,
成功:职能(e){
警惕(“成功”);
//重建网格?
},
错误:函数(e){
警报(“请求失败(500)”;
}
});
有效载荷:
希望有人能走上正确的道路,所有人都会非常感激
关于,因此,要从评论中获得答案,您必须确保编译
。如果它位于单独的JS文件中,则必须从视图中传递它。否则可能是其他问题(如果您使用的是Razor语法,它应该类似于@Url.Action(“CreateExtendedProperty”,“Organization”)
)您的问题太模糊了,我不知道如何回答您。据我所知,你的控制器方法没有任何作用,所以我不确定它如何能产生400个响应;比任何东西都更能说明问题。确切地说,它是赤裸裸的,思想也是如此,它实际上并没有击中。请尝试删除JSON.stringify
并传递数据:{extendedPropertyDefinitionViewModel:extendedPropertyDefinition},
@TezWingfield是否编译了
?您的JS代码是否嵌入到CSHTML中?您是否尝试过在JS中编写url/Organization/CreateExtendedProperty'这是假设您的控制器名称是Organization,因为我们无法看到完整的控制器代码