Это не ясно из вашего вопроса, что вы используете ASP.NET MVC? потому что в этом случае index.html должен быть index.cshtml
Во-вторых, я считаю, что вы пытаетесь получить доступ к модели не контроллера, если используете asp.net mvc. Вы предоставляете неправильный путь (используя путь к файлу или местоположению), тогда как вам необходимо указать Путь сервера/путь Server.cs/Путь к действию.
третьей ошибкой является не статический класс server.cs оказывает статическую функцию:
В-четвертых, если вы используете веб-службы (ASMX) за сценой и используя HTML-страницу, чтобы общаться с помощью веб-службы, то решение будет упомянуто ниже:
Вам необходимо объявить его методом GetMyName в Server.cs для получения или задания значения, указывающего, следует ли вызывать метод с помощью HTTP GET.
[WebMethod]
[ScriptMethod(UseHttpGet = true)]
Ссылка: https://msdn.microsoft.com/en-us/library/system.web.script.services.scriptmethodattribute.usehttpget(v=vs.110).aspx
Я не мог проверить этот код, но я считаю, что это будет работать для вас
index.html
<head>
<script>
var __appBasePath = 'http://yourserver.com/';
<script>
</head>
<body>
<h1>Weeelcome</h1>
<button type="button" id="btnName" style="width: 100px; height: 50px;">Get My Name</button>
<p ID="lblTest"></p>
</body>
Ваш JS
$(document).ready(function() {
$("#btnName").click(function() {
$.ajax({
url: __appBasePath + "Server/GetMyName",
type: "GET",
success: function (result) {
alert(result);
},
error: function (ex) {
//alert("Error");
}
});
});
});
Ваш Server.cs (Если это веб-службы) Примечание: не статический класс не может иметь статический метод: так удалить статический
public class Server
{
[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public string GetMyName()
{
return "MyName";
}
}
Если вы используете ASP.NET MVC Controller или Web API:
Если вы используете asp.net MVC, то что вы делаете неправильно, вы пытаетесь вызвать функцию, которую вы определили в модели. как я вижу, вы упомянули (решение -> проект -> Модели -> Сервер.cs) Если вы используете ASP.NET MVC/Web API, просто используйте [HttpGET] в контроллере action.i.e.
Model.cs
public class ServerModel
{
public string GetMyName()
{
return "MyName";
}
}
В случае MVC контроллер:
public class ServerController : Controller
{
public JsonResult GetMyName()
{
ServerModel model = new ServerModel();
var name = model.GetMyName;
return Json(name, JsonRequestBehavior.AllowGet);
}
}
Вам нужно только заменить контроллер для ApiController в классе ServerController в случае, если вы используете Asp. net mvc web apis.
В случае WebAPI Заменить:
public class ServerController : Controller
с
public class ServerController : ApiController
Является 'HTTP: // локальный: 50603/Модели/GetMyName' правой URL для вашей стороне сервера файл? Попробуйте открыть его в браузере – void
@void хорошо. Я считаю, что это случай. Я не знаю, как указать правильный URL-адрес файла. Как я могу получить правильный URL-адрес? – MrProgram
Попробуйте проверить разные комбинации в браузере, если вы сбиты с толку. – void