gpt4 book ai didi

javascript - 我用 mvc .net 写了一个 web api,但是我收到了 404 错误

转载 作者:行者123 更新时间:2023-12-04 03:45:12 25 4
gpt4 key购买 nike

下面是我的脚本

$(function () {
$(".formSubmit").click(function () {
var cName = $('#cName').val();
var cSurname = $('#cSurname').val();
var cEmail = $('#cEmail').val();
var cMessage = $('#cMessage').val();
console.log(cMessage);
console.log(cEmail);
console.log(cSurname);
console.log(cName);
if (cName != null && cName != '' && cSurname != null && cSurname != '' && cEmail != null && cEmail != '' && cMessage != null && cMessage != '') {
$.ajax({
type: "GET",
url: "/api/contactusapi/" + cName + "/" + cSurname + "/" + cEmail + "/" + cMessage + "/?",
contentType: "json",
dataType: "json",
success: function (data) {
if (data != null) {

}
},
error: function (xhr) {
alert(xhr.responseText);
}
});
}
});
});

下面是我的“contactusapi”api

namespace iskorumacom.Controllers
{
public class ContactUsApiController : ApiController
{
[HttpGet]
public int Get(string cName, string cSurname, string cEmail, string cMessage)
{
try
{
using (Data.DataClassesDataContext dc = new Data.DataClassesDataContext())
{
string cHTML =
"<h3></h3>" +
"<b>Ad:</b> " + cName + "<br />" +
"<b>Soyad :</b> " + cSurname + "<br />" +
"<b>e-Mail :</b> " + cEmail + "<br />" +
"<b>Mesaj :</b> " + cMessage;

using (MailMessage MailMessageLocal = new MailMessage())
{
MailMessageLocal.From =
new MailAddress("m@majorworx.com", cName + " " + cSurname, System.Text.Encoding.UTF8);


MailMessageLocal.To.Add("m@majorworx.com");

MailMessageLocal.Subject = "İletişim Formu Formu";
MailMessageLocal.IsBodyHtml = true;
MailMessageLocal.BodyEncoding = System.Text.Encoding.UTF8;
MailMessageLocal.Body = cHTML;
MailMessageLocal.Priority = MailPriority.High;

using (SmtpClient SmtpClientLocal = new SmtpClient())
{

return -1;

}
}


}
}
catch
{
return 0;
}
}
}
}

和我的 route.config 文件夹

public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new string[] { "iskorumacom.Controllers" }
);
}

最佳答案

您的 Controller 继承自 ApiController,但您的路由是为 MVC Controller 配置的。

  1. 如果你想使用 ApiController 然后使用 .MapHttpRoute 方法配置路由。
  2. 如果您想使用 .MapRoute 方法进行配置,则从 Controller 而不是 ApiController 继承您的 Controller 。

此外,在您的网址中,您要在主机和端口之后添加 /api/api 在使用 .MapHttpRoute 定义路由时在 routeTemplate 中定义,如下所示 -

 config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);

在您的情况下,将您的 WebApiConfig 配置为 -

  config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);

现在使用 url /api/contactusapi?cName=myname&cSurname=mysurname&cEmail=myemail&cMessage=mymessage 调用您的 api

或者您可以将 Route 属性添加到您的操作方法中,如下所示 -

namespace iskorumacom.Controllers
{
public class ContactUsApiController : ApiController
{
[HttpGet]
[Route("api/contactus/{cName}/{cSurName}/{cEmail}/{cMessage}")]
public int Get(string cName, string cSurname, string cEmail, string cMessage) {
// Your code
}
}
}

现在将您的 API 称为 - /api/contactus/myname/mysurname/myemail/mymessage

关于javascript - 我用 mvc .net 写了一个 web api,但是我收到了 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65300224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com