1
と戻り部分図は、私はすでにウェブAPIを使用しています、私はJSONオブジェクトを返すことができますが、私はHTMLでのビューを返したい:私はサイトコアでのAJAX呼び出し中に部分的なビューを返したいAJAX呼び出し
[HttpGet]
public ActionResult StoreSearchResultsPartial()
{
return PartialView("/views/components/StoreSearchResults.cshtml");
}
私のAJAX呼び出し:
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) {
}
});
私は他の機能のためのWeb APIを使用していますので、私は自分のルーティングを追加しました:
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'また、このアクション名をjavascriptで使用する場合は、アクション呼び出しの名前を 'public ActionResult StoreSearchResults()'に変更する必要があります。 –