我的项目中名为Models的文件夹中有一个名为server的类(解决方案 - >项目 - >模型 - > Server.cs)
我有一个简单的按钮,点击后我想调用我的服务器端方法并获取返回的字符串..
我收到错误404(未找到)。我尝试了几种不同的网址,但它似乎无法工作......
的index.html:
<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: "../../Models/GetMyName",
type: "GET",
success: function (result) {
alert(result);
},
error: function (ex) {
//alert("Error");
}
});
});
});
Server.cs
public class Server
{
[WebMethod]
public static string GetMyName()
{
return "MyName";
}
}
错误
获取http://localhost:50603/Models/GetMyName 404(未找到)
答案 0 :(得分:1)
您的问题不清楚您使用的是ASP.NET MVC吗?因为在那种情况下index.html假设是index.cshtml
其次,如果您使用的是asp.net mvc,我相信您正在尝试访问模型而不是控制器。您提供了错误的路径(使用文件或位置路径),而您需要提供服务器路径/您的Server.cs路径/您的操作路径。
第三个错误是非静态类server.cs具有静态功能:
第四,如果您在场景后面使用Web服务(asmx)并使用html页面与您的Web服务进行通信,那么下面将提到解决方案,
您需要在Server.cs中声明它的GetMyName方法以获取或设置一个值,该值指示是否使用HTTP GET调用该方法。
[WebMethod]
[ScriptMethod(UseHttpGet = true)]
我无法测试此代码,但我相信这对您有用
<强>的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(如果是Web服务) 注意:非静态类不能有静态方法:所以删除静态
public class Server
{
[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public string GetMyName()
{
return "MyName";
}
}
如果您使用的是ASP.NET MVC Controller或Web API:
如果您正在使用asp.net MVC,那么您正在尝试调用您在模型中定义的函数。我可以看到你提到的(解决方案 - &gt;项目 - &gt;模型 - &gt; Server.cs)如果你使用的是asp.net MVC / Web API,那么只需在控制器action.ie中使用[HttpGET]。
<强> 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);
}
}
如果你使用的是Asp.net mvc web apis,你只需要在ServerController类中将Controller替换为ApiController。
如果是WebAPI 替换:
public class ServerController : Controller
带
public class ServerController : ApiController