Javascript 角度及;ASP.NET MVC-将参数传递给后端控制器时,参数为null
如果查看我的ASP.NET MVC控制器clientId的参数,它总是空的 唯一能让它不为null并成功传递数据的方法是创建一个类。。。但这会变得单调乏味,我不能为每个后端函数创建一个类来让它正常工作 有没有一种方法可以在不创建类的情况下成功传递数据 谢谢你的帮助 角工厂Javascript 角度及;ASP.NET MVC-将参数传递给后端控制器时,参数为null,javascript,c#,asp.net,angularjs,asp.net-mvc,Javascript,C#,Asp.net,Angularjs,Asp.net Mvc,如果查看我的ASP.NET MVC控制器clientId的参数,它总是空的 唯一能让它不为null并成功传递数据的方法是创建一个类。。。但这会变得单调乏味,我不能为每个后端函数创建一个类来让它正常工作 有没有一种方法可以在不创建类的情况下成功传递数据 谢谢你的帮助 角工厂 PlaylistsFactory.getUsersForClient = function (clientId) { return $http({ method: 'POST', url: '/Show/Get
PlaylistsFactory.getUsersForClient = function (clientId) {
return $http({
method: 'POST',
url: '/Show/GetUsersForClient',
data: JSON.stringify(clientId)
});
};
角度控制器
PlaylistsFactory.getUsersForClient(clientId)
.success(function (userList) {
console.log('success!');
});
public JsonResult GetUsersForClient(string clientId) //clientId is always null unless i create an object
{
...
}
ASP.NET MVC控制器
PlaylistsFactory.getUsersForClient(clientId)
.success(function (userList) {
console.log('success!');
});
public JsonResult GetUsersForClient(string clientId) //clientId is always null unless i create an object
{
...
}
尝试使JSON参数与C#参数的名称匹配,并将其作为JSON封装在数据负载中:
return $http({
method: 'POST',
url: '/Show/GetUsersForClient',
data: {clientId: JSON.stringify(clientId)}
});
};
我建议您遵循RESTful API的规则 这意味着您应该使用HTTP动词,如GET(获取数据)、POST(更新数据)、PUT(创建数据)、DELETE(删除数据)。看 然后,还可以添加要传递到API路由中的参数:
/Show/GetUsersForClient/{clientId}
。看
在这种情况下,您将解决在主体中发送数据而MVC控制器端没有ViewModel的问题
如果要继续执行解决方案,请在发送之前尝试创建对象:
PlaylistsFactory.getUsersForClient = function (clientId) {
var payload = { clientId: clientId }
return $http({
method: 'POST',
url: '/Show/GetUsersForClient',
data: payload
});
};
当请求头中的内容类型为text/plain或application/json时,MVC/WebAPI有时也会阻塞。例如:当以text/plain格式发送json对象时,.Net无法正确识别它。我认为json对象名称必须与C#参数名称相同。在本案中—clientId@Dudemanword当我调用playlisfactory.getUsersForClient(clientId)时,这不是我正在做的吗?啊。。我以为“数据”是默认的。。。好吧,让我试试this@user1189352你说得对。它应该在数据中。但是您应该将数据包装到另一个对象中