Я хочу вернуть частичный вид в Ajax вызова в Sitecore, я уже использую веб-интерфейсы API, я могу вернуть объект JSON, но я хочу, чтобы вернуть вид с HTML:Возврат Частичный вид с Ajax вызова
[HttpGet]
public ActionResult StoreSearchResultsPartial()
{
return PartialView("/views/components/StoreSearchResults.cshtml");
}
мой Аякса вызов:
var ajaxUrl = "/api/sitecore/components/StoreSearchResultsPartial"
$.ajax({
type: "GET",
url: ajaxUrl,
contentType: "application/json; charset=utf-8",
success: function (result) {
$("#searchResults").html(result);
},
error: function (result) {
}
});
Я использую веб-интерфейс для других функций, поэтому я добавил свой маршрут:
public void Process(PipelineArgs args)
{
var config = GlobalConfiguration.Configuration;
RouteTable.Routes.MapHttpRoute(
name: "NamedActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
).RouteHandler = new SessionRouteHandler();
config.Routes.MapHttpRoute("DefaultApiRoute",
"api/{controller}/{id}",
new { id = RouteParameter.Optional });
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
}
Когда я прокомментирую эту маршрутизацию, все работает нормально.
И какая проблема? Что происходит, когда вы запускаете свой код? –
@MarekMusielak: Проблема заключается в том, что мой метод действия не вызван, я получаю эту ошибку: не удалось загрузить ресурс: сервер ответил статусом 404 (не найдено) –
Являетесь ли вы внутренним контроллером под названием 'ComponentsController'? также вы должны переименовать свой вызов действия в 'public ActionResult StoreSearchResults()', если вы используете это имя действия в javascript. –