您好我正在开发restfull web api应用程序。在将数据插入数据库之后,我希望返回0表示成功,1表示错误,数据作为分配给用户的唯一ID。我想以json格式返回上面的数据。我的要求是我必须以json格式向控制器发送数据并以json格式接收数据。我有以下代码,它正在工作,但我想在这里问几点。 下面是我的User_Creation控制器代码。
public result Post(Noor_Users users)
{
result obj = new result();
if (ModelState.IsValid)
{
entityObject.Noor_Users.Add(users);
int result = entityObject.SaveChanges();
if(result==1)
{
obj.success = 0;
obj.id = 5;
return obj;
}
else
{
obj.error = 1;
return obj;
}
}
else
{
obj.error = 1;
return obj;
}
}
}
我的service.js文件包含以下代码。
app.service("UserCreation", function ($http) {
this.saveSubscriber = function (sub) {
return $http({
method: 'post',
data: JSON.stringify(sub),
url: 'api/User_Creation',
contentType: "application/json"
});
}
});
这是我的controller.js代码。
app.controller('UserCreation', function ($scope, UserCreation) {
$scope.saveSubs = function () {
var sub = {
user_email: $scope.user_email,
user_password: $scope.user_password,
};
var saveSubs = UserCreation.saveSubscriber(sub);
saveSubs.then(function (data) {
alert(JSON.stringify(data.data));
}, function (error) {
console.log('Oops! Something went wrong while saving the data.')
})
};
});
我期待json格式的响应如下。
●status - 0表示成功,1表示失败。 ●数据 ○id - 分配给用户的唯一ID ●错误 - 失败时出现错误消息
这绝对没问题。我在webapiconfig.cs文件中有以下代码行
config.Formatters.JsonFormatter.SupportedMediaTypes
.Add(new System.Net.Http.Headers.MediaTypeHeaderValue("text/html"));
使用这行代码总是可以接收json格式的数据。但是在angularjs成功调用中,我需要对收到的数据进行字符串化。如果我的所有数据都在json中返回,那么为什么我应该将它转换为json?也有人可以告诉我上面的逻辑是一个返回数据的好习惯吗?谢谢。
答案 0 :(得分:0)
请尝试以下步骤:
在WebApiConfig.cs
之上添加这两行代码public static void Register(HttpConfiguration config)
{
config.Formatters.Clear();
config.Formatters.Add(new JsonMediaTypeFormatter());
使用以下
编辑控制器操作public IHttpActionResult Post(Noor_Users users)
{
result obj = new result();
if (ModelState.IsValid)
{
entityObject.Noor_Users.Add(users);
int result = entityObject.SaveChanges();
if (result == 1)
{
obj.success = 0;
obj.id = 5;
}
else
{
obj.error = 1;
}
}
else
{
obj.error = 1;
}
return Ok(obj);
}