我正在使用 Sitecore 7.1 和一个 MVC 4 项目。
我正在尝试制作一个搜索框,它将新闻搜索到一个存储桶中并将结果作为 JSON 返回。
所以我读了那篇博文:http: //keeplearningandsharing.wordpress.com/2013/12/13/sitecore-mvc-with-ajax/
并尝试做同样的事情,但它不起作用。
我做了什么 :
1)我创建了一个名为 NewsOverviewController 的控制器,我在其中放置了两个方法
ActionResult Start() (HttpGet) which return my view with the searchbox
JsonResult Starts(InpurtParams) which perform the search
2)在sitecore中,我创建了我的控制器渲染并添加了动作开始。
3)我在 RouteConfig.cs 中注册了一个新路由(我把它放在 sitecore 路由之前和之后,没有改变任何东西)
routes.MapRoute(
name: "search",
url: "api/NewsOverview/{action}/{id}",
defaults: new { controller = "NewsOverview", action = "Starts", id = UrlParameter.Optional }
);
4)我将以下代码放在我的视图中:
<script>
function getSearchResult() {
var inputparams = {};
inputparams.SearchTerm = document.getElementById("searchTerm").value;
try {
$.getJSON("/api/NewsOverview/starts", inputparams, displaySearchResult);
}
catch (ex) {
alert("Error : " + ex.message);
}
}
function displaySearchResult(data) {
$.each(data, function (i, result) {
$("#searchresult").append(result.Name + " - " + result.Url + "<br/>");
});
};
</script>
<div>
<input type="text" name="searchTerm" id="searchTerm" value="test"/>
<input type="button" onclick="getSearchResult();"/>
<div id="searchresult"></div>
</div>
我尝试使用搜索时遇到的问题:他没有找到网址(404(找不到页面)):{host}/api/NewsOverview/start?SearchTerm=test
我对 MVC 很陌生,所以我想念一些东西......