ОК, я совершенно новичок в .NET MVC3 и столкнулся с проблемой.
Я занимаюсь разработкой мобильного приложения с использованием Jquery mobile и хочу отправить данные из мобильного приложения на веб-страницу. На сервере у меня это:
[HttpPost]
[ValidateInput(true)]
public ActionResult Save(FormCollection actionValues) {
int age = Int32.Parse(actionValues["age"]);
string fn = actionValues["first_name"];
string ln = actionValues["last_name"];
CreateAndStorePersonModel(age,fn,ln); // Dummy method, not important
return new HttpStatusCodeResult(200); // Thanks to 3nigma for this
}
Что мне нужно, так это иметь возможность получать значения actionValues и сохранять их в модели, а затем сохранять эту модель в базе данных. В этом примере мы предположим, что я хочу сохранить «Person» с атрибутами: «first_name, last_name, age». Также я мог бы расширить эту модель в будущем.
В мобильном приложении я запускаю следующий код:
$.ajax({
type: "POST",
url: "http://external.url/Save",
dataType: "json",
traditional: true, // default serialization (do I even need this?)
data: {
"age": data_age,
"first_name": data_fn,
"last_name": data_ln,
},
success: function(d) { alert("Success: "+d},
}).error(function(data, errorTxt, jqXHR) {
alert('Error: '+errorTxt);
});;
Я получил внутреннюю ошибку 500, но благодаря 3nigma это уже не так.
EDIT:
При тестировании с моего веб-сервера я получаю http 302 "Найдено" при проверке инспектора, но данные не сохраняются. При компиляции на мобильный телефон обработчик .error запускает inn с помощью «parseerror», но данные сохраняются. Есть идеи почему?
Ответ:
302 «Найдено» пришло, потому что я вернул представление (благодаря 3nigma). Должно вернуть это:
return new HttpStatusCodeResult(200);