我目前正在向以下.NET MVC操作提交json请求
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult Signup(FormCollection collection)
{
但是由于某种原因,该集合是空的。我知道数据正在发送,因为我将其更改为
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult Signup(String username, String email, String password)
{
我正在使用表单集合,因为它允许我为该方法提供可选参数。 在将来我可能没有用户名我可能有名字(例如)但我不能有旧网址
请求来自iOS应用程序,形式为NSMutableURLRequest。 我是否遗漏了某些东西,或者我必须使用第二个选项,并在我添加新参数时创建一个不同的方法/在我发布新的应用更新时创建单独版本的.NET MVC应用。
所以是的,因为我发布了这样的数据
NSMutableDictionary *sendData = [[NSMutableDictionary alloc] init];
[sendData setValue:self.usernameTxt.text forKey:@"username"];
[sendData setValue:self.emailTxt.text forKey:@"email"];
[sendData setValue:self.deviceToken forKey:@"device_token"];
//verify account details and retrieve the API Key
responseData = [NSMutableData data];
NSString *stringUrl = kAppRequestUrl;
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[stringUrl stringByAppendingString:@"/SomePath"]]];
[request setValue:@"application/json; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[request setHTTPMethod:@"POST"];
[request setHTTPBody: [sendData JSONData]];
答案 0 :(得分:0)
FormCollection
表示您的Form
元素的集合。不要指望接受JSON值。我希望你的第二个选项(参数)带有可选参数。
[HttpPost]
public JsonResult Signup(String username="",string name="", String email, String password)
{
//do stuff
}