Ich habe diese Aktion auf einem Artikel Controller Mvc 4 JsonResult nichts Rückkehr
[HttpGet]
public JsonResult Search(string data, int id)
{
var date = DateTime.Now;
if(!string.IsNullOrEmpty(data))
date = DateTime.Parse(data);
var result = Repository.FindBy(date, id); // (1)
return Json(result, JsonRequestBehavior.AllowGet);
}
und ich rufe es mit jQuery
function successHandler(success){
console.log(success); // (2)
return success;
}
function errorHandler(error){
console.error(error); // (3)
return error;
}
$.ajax({
type: 'GET',
contentType: 'application/json',
url: '/Items/Date/2015-01-01/Id/2',
}).then(successHandler, errorHandler);
Wenn ich in einen Haltepunkt setzen (1) und starten Sie den jQuery Ajax Aufruf der Debugger trifft den Haltepunkt, ich kann sehen, dass result
ist eine gültige IEnumerable<Item>
und dass die Aktion zurückgibt.
Wenn ich einen Haltepunkt in (2) es nie getroffen hat, und in (3) der Wert von error
ist
{ readyState: 4,
responseText: "",
status: 200,
statusText: "OK" }
Welche kein Fehler ist.
Wenn ich direkt die URL (http://localhost:26252/Items/Search/2015-01-01/Id/2
) aufrufen, bekomme ich eine leere Seite und mit der Firebug-Konsole die gleiche Antwort.
Was ist los?
EDIT:
die individuelle Route für diese Aktion ist
routes.MapRoute(
name: "Items",
url: "Items/Date/{date}/Id/{id}",
defaults: new { controller = "Items", action = "Search" }
);
und der Standard ist
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Seite Frage: welche Art von Javascript ist das? Sind die Klammern einfach verschwunden oder ist das ein Parser? – Nsevens
es ist Kaffeescript. möchten Sie, dass ich die kompilierte Version einfüge? – fra9001
ja. Bitte poste die generierte js. Verfügen Sie auch über eine benutzerdefinierte Routenvorlage für Ihre Aktionsmethode? – Shyju