我正在尝试实现一些Ajax,并遇到了如何处理响应以及如何正确处理数据的问题。
我的JavaScript代码是:
$(function () {
$('#creatediaryentry').submit(function () {
if ($(this).valid()) {
$.ajax({
url: this.action,
type: this.method,
dataType: "json",
data: $(this).serialize(),
success: function (result) {
$('#diary-entries-list').append("<li>" + result + "</li>");
}
});
}
return false;
});
});
这需要一个简单的表单数据并按预期将其发布到控制器方法:
public JsonResult PostNewEntry(EntryViewModel entry)
{
var entryDc = Mapper.Map<EntryViewModel, EntryDc>(entry);
try
{
//_apiClient.SubmitNewEntry(entryDc);
}
catch (ApiClientException ex)
{
Console.WriteLine(ex);
}
return Json(JsonResponseFactory.SuccessResponse());
}
目前发生的事情是响应被加载到只有SuccessResponse内容的空白页面 - {"Success":true}
我理想的做法就是抓住用户在用户界面中输入的文本,并使用客户端数据更新<li>
,而不从控制器发回。
答案 0 :(得分:1)
尝试阻止默认的提交行为。您可以使用preventDefault
方法执行此操作。
$(function(){
$('#creatediaryentry').submit(function (e) {
e.preventDefault();
//your other ajax posting code goes here
});
});