Атрибут webmethod говорит, что этот метод должен отвечать на определенный URL-адрес (немного похоже на маршрутизацию в asp.net mvc). Поскольку я не использую веб-формы, я не знаю, какую логику он использует, когда решает, на какой URL должен реагировать метод. Но я предполагаю, что URL должен быть чем-то вроде «Master.cs / UserStatus» (не уверен насчет расширения .cs). И это, конечно, относительный URL, поэтому вы можете попробовать что-то вроде этого: <%=ResolveUrl("~/Master.cs/UserStatus")%>
(если главная страница находится в вашей корневой папке). Тогда ваш пример должен выглядеть примерно так:
$.ajax({
type: "POST",
url: '<%=ResolveUrl("~/Master.cs/UserStatus")%>',
contentType: "application/json; charset=utf-8",
data: "{}",
dataType: "json",
success: AjaxSucceeded,
error: AjaxFailed
});
Обновление
Возможно, расширение .cs неверно. Но я не думаю, что вы должны иметь это на главной странице в любом случае. Вероятно, вы должны иметь это в веб-сервисе или в обработчике .ashx или что-то еще, если вы хотите использовать ajax. Но с последним комментарием кажется, что вам не нужно использовать ajax (а если вам это не нужно, вам не нужно). Проблема в коде, который вы написали в комментарии, возможно, заключается в том, что идентификатор неверен (помните, что вам нужен идентификатор клиента в javascript).
Но я бы, наверное, сделал это примерно так:
<script type="text/javascript">
var statuses = [];
<%foreach(var status in UserStatus()) {%>
statuses.push(<%=status%>);
<%}%>
</script>
Это сделает этот javascript в браузере:
<script type="text/javascript">
var statuses = [];
statuses.push("#ll1");
statuses.push("#ll2");
</script>
Тогда ваши статусы будут в массиве statuses
.