Я пытаюсь получить Web API работы с POST и я следующий в моем контроллере:Web API сообщение данных: ссылка на объект не указывает на экземпляр объекта
public class mainGridController : ApiController
{
public class formData
{
public string module { get; set; }
public string group { get; set; }
public string staff { get; set; }
}
public HttpResponseMessage Post([FromBody] formData data)
{
string string_group = "";
string string_staff = "";
if (data.group != null)
{
Но я, кажется, получают «Ссылка на объект не установлена в экземпляр объекта» для data.group в моем выражении «if».
Вот мой маршрут информация:
protected void Application_Start(object sender, EventArgs e)
{
GlobalConfiguration.Configuration.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{data}",
defaults: new { module = System.Web.Http.RouteParameter.Optional, data = System.Web.Http.RouteParameter.Optional}
);
}
Кто-нибудь знает, что может быть причиной этого? Я пытаюсь опубликовать с помощью jQuery.
Вот мой JQuery код:
var url = "api/mainGrid";
var source = {
datatype: 'json',
contentType: 'application/json; charset=utf-8',
url: url,
processData: false,
type: "POST",
id: "SEQUENCE",
root: 'rowsinfo',
cache: false,
columns: [],
datafields: [],
beforeprocessing: function (data) {
var columnsdata = new Array();
var datafieldsdata = new Array();
for (k in data.columnsinfo) {
var col = {};
col.text = data.columnsinfo[k]["DISPLAYNAME"];
col.datafield = data.columnsinfo[k]["DISPLAYNAME"];
var datafields = {};
datafields.name = data.columnsinfo[k]["DISPLAYNAME"];
columnsdata.push(col);
datafieldsdata.push(datafields);
source.columns = columnsdata;
source.datafields = datafieldsdata;
}
$("#jqxgrid").jqxGrid({ columns: source.columns });
},
data: {
group: JSON.stringify(checkedGroups),
staff: JSON.stringify(checkedStaff),
module: selectedModuleSEQ
}
};
Благодаря
Сообщение кода JQuery, это очень важно. FYI при использовании C# [рекомендуется] (http://msdn.microsoft.com/en-us/library/vstudio/ms229043 (v = vs.100) .aspx), что вы используете оболочку Pascal для имен классов. – James
Спасибо, Джеймс, только что написал ... Я изменю имя класса, спасибо! – realtek
checkedGroups и checkedStaff - это как javascript массивы. – realtek