私のアプリケーションでは、コントローラーメッセージがあります
public class MessageController : BaseController
{
...
}
BaseControllerはabstactクラスであり、メソッドFindUserForMessagesが含まれています。この「BaseController」は3つの類似したWebアプリケーションで親のように使用され、すべてのアプリケーションに共通の機能が含まれているため、このメソッドはこのコントローラーに含まれている必要があります。
public abstract class BaseController : Controller
{
[Authorize]
[HttpPost]
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult FindUser(string userName, int maxRecords)
{
try
{
return Json(new JsonResult()
{
IsError = false,
ErrorMessage = string.Empty,
Data = (from u in AccountModel.FindUser(userName, false).Take(maxRecords)
select new
{
UserName = u.UserName,
UserId = u.ProviderUserKey,
IsOnlien = u.IsOnline
})
});
}
catch (Exception ex)
{
...
}
}
}
このメソッドをJqueryUIオートコンプリートウィジェットのソースに使用したいと思います。私はAjaxによってこのメソッドを呼び出そうとしています:
$("#txtQuickMessageSendTo").autocomplete({
source: function (request, response) {
$.ajax({
url: "/Message/FindUser",
data: {
userName: request.term,
maxRecords: 10
},
success: function (resultObj) {
if (resultObj.IsError) {
handleAjaxError(null, null, null, null, resultObj.ErrorMessage, null);
return;
}
else {
response($.map(data.Data, function (item) {
return {
label: item.UserName,
value: item.ProviderUserKey
}
}));
}
}
});
},
minLength: 2,
select: function (event, ui) {
//log(ui.item ? "Selected: " + ui.item.label : "Nothing selected, input was " + this.value);
},
open: function () {
$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
},
close: function () {
$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
}
});
WebデバッグにFiddler2を使用しており、要求には両方ともパラメーター(userNameとmaxRecords)がありますが、サーバーはエラーをスローします。
Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.
Requested URL: /Message/FindUserForMessages
パラメータはOKですが、なぜこのメソッドを呼び出せないのですか?
感謝