ashwani bakshi Ответов: 1

Не удается получить доступ к методу 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-адрес.

1 Ответов

Рейтинг:
1

Laxmidhar tatwa technologies

В формате JSON.преобразовать в строки(PersonalDetails) -> Это преобразовать объект JSON в String.
Таким образом вы передаете строку с параметром вызова ajax в соответствии с этим параметром
вы должны определить строку .

Снова в строю
создайте имя класса с теми же полями объектов массива json
Список<имя класса> Meddata;
JavaScriptSerializer jsspms = новый JavaScriptSerializer();
Meddata = jsspms.Десериализовать в<список<имя типа&ГТ;&ГТ;(personaldetails);

вы можете повторно получить значения с помощью цикла foreach