Не удается получить доступ к методу web api из поля зрения?
<html> <head> <script type="text/javascript" src="~/Scripts/jquery-1.10.2.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#btnAdd").click(function () { var PersonalDetails = { "id": $("#ID").val(), "name": $("#Name").val(), "adres": $("#Adress").val(), } $.ajax({ type: "POST", url: 'http://localhost:54516/api/Values/PostPersonalDetails', data: JSON.stringify(PersonalDetails), contentType: "application/json;charset=utf-8", processData: true, success: function (data, status, xhr) { alert("The result is : " + status); }, error: function (xhr) { alert(xhr.responseText); } }); }); }); </script> </head> <body> <h2>Create</h2> <div> <label>Id</label> @Html.TextBox("ID") </div> <div> <label>Name</label> @Html.TextBox("Name") </div> <div> <label>Age</label> @Html.TextBox("Adress") </div> <div> <button id="btnAdd">Add</button> </div> </body> </html>
КОД КОНТРОЛЛЕРА API
public class ValuesController1 : ApiController { [HttpPost] public IHttpActionResult PostPersonalDetails([FromBody]PersonalDetails personaldetails) { if (!ModelState.IsValid) { return BadRequest(ModelState); } SqlConnection co = new SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["con"].ConnectionString); co.Open(); SqlCommand cmd = new SqlCommand("insert into udata values('" +personaldetails.id + "','" +personaldetails.name+ "','" +personaldetails.adres+ "')", co); cmd.ExecuteNonQuery(); co.Close(); return Ok(personaldetails); } }
Что я уже пробовал:
я использовал url-адрес:
'/api/Values/PostPersonalDetails'
ZurdoDev
И что же происходит?
[no name]
он показывает ошибку 404.url-адрес не работает.
F-ES Sitecore
Тогда это не действительный url-адрес. У нас нет доступа к вашей системе, так как же мы можем сказать вам, почему она недействительна? Вместо того чтобы создавать URL-адреса так, как вы это делаете, используйте @Url.Action, если доступ к url-адресу осуществляется на том же сайте.
ZurdoDev
404 означает, что url-адрес не найден. Вам необходимо указать правильный url-адрес.