text/html即使您传递的是JSON,您使用的插件也应作为响应的内容类型。因此,如果您真的想使用它,则需要执行以下操作:
return Content("{ FileName: '/Uploads/' }", "text/html");如您所知,这很糟糕。
因此,继续下载jquery表单插件。它更容易使用。您无需在HTML中执行任何操作,这完全不麻烦。只需将表单保留为原样,并在javascript中简单地进行以下操作:
$(function() { // only indicate the form id, it will take care of reading the form action, // returning false, ..., all you need is to concentrate // on the success callback $('#uploadForm').ajaxForm(function(result) { alert(result); });});另请注意,如果发生错误,则不应返回Javascript。您始终需要从控制器操作中返回Json。因此,如果出现错误:
return Json(new { errorMessage = "Kaboom", fileName = "" });如果成功:
return Json(new { errorMessage = "", fileName = "/Uploads/" + file.FileName });因此,现在您可以通过检查
errorMessage返回的JSON对象上的属性来检查是否存在错误:
$('#uploadForm').ajaxForm(function(result) { if (result.errorMessage != '') { alert(result.errorMessage); } else { $('#RelatedFileName').val(result.fileName); $('#dialog').dialog('close'); }});


