#c# #asp.net-web-api #visual-studio-2017 #webapi
Вопрос:
Всякий раз, когда я пытался запустить свое приложение, оно не выполнялось и показывало эту ошибку.
Ошибка:
Я попытался найти его, но не получил никакой полезной информации о нем, и, прежде всего, я внес изменения Web.config
, но все еще не могу найти web.config
его в своем приложении. Любая помощь, которая могла бы решить эту проблему, будет признательна.
Изображение обозревателя решений, в котором я не могу найти web.config
файл:
Employee
Контроллер:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using My_Work.Models;
namespace My_Work.Controllers
{
public class EmployeeController : ApiController
{
[HttpGet]
public IEnumerable<Employee> Get(Employee employee)
{
Employee emp = new Employee();
return emp.GetList(employee);
}
}
}
Employee
Модель:
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
using System.Configuration;
using System.Data.SqlClient;
namespace My_Work.Models
{
public class Employee
{
public int EmployeeID { get; set; }
[Required]
public string FirstName { get; set; }
public string LastName { get; set; }
[Required]
public string Gender { get; set; }
[Required]
[Range(20, 60, ErrorMessage = "Age must be between 20 and 60")]
[Display(Name = "Age")]
public int Age { get; set; }
[Required]
[Display(Name = "Education Level")]
public int EducationLevel { get; set; }
[Range(25000, 500000, ErrorMessage = "Please enter correct value")]
[Required]
/* We can control the display of data in a View (UI) using
display attributes */
[Display(Name = "Salary")]
public int Salary { get; set; }
[Required]
[EmailAddress]
public string EmailAddress { get; set; }
[Required(ErrorMessage = "Please enter hire date")]
[Display(Name = "Hire Date")]
[CustomHireDate(ErrorMessage = "Hire Date must be less than or equal to Today's Date")]
[DataType(DataType.Date)]
public DateTime? HireDate { get; set; }
public string City { get; set; }
public string ImageURL { get; set; }
[Required]
[Display(Name = "Upload Photo")]
string ConnectionString = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
SqlConnection sqlConnection = null;
SqlCommand cmd = null;
public List<Employee> GetList(Employee employee)
{
List<Employee> employeesList = new List<Employee>();
sqlConnection = new SqlConnection(ConnectionString);
string query = string.Empty;
query = @"select * from Employee";
cmd = new SqlCommand(query, sqlConnection);
sqlConnection.Open();
SqlDataReader dataReader = cmd.ExecuteReader();
while (dataReader.Read())
{
employeesList.Add(new Employee
{
EmployeeID = Convert.ToInt32(dataReader["EmployeeId"].ToString()),
FirstName = dataReader["FirstName"].ToString(),
LastName = dataReader["LastName"].ToString(),
Gender = dataReader["Gender"].ToString(),
City = dataReader["City"].ToString(),
EmailAddress = dataReader["EmailAddress"].ToString(),
Age = Convert.ToInt32(dataReader["Age"].ToString()),
Salary = Convert.ToInt32(dataReader["Salary"].ToString()),
EducationLevel = Convert.ToInt32(dataReader["EducationLevel"].ToString()),
HireDate = DateTime.Parse(dataReader["HireDate"].ToString()),
ImageURL = dataReader["ImageURL"].ToString(),
});
;
}
sqlConnection.Close();
return employeesList;
}
}
}
Комментарии:
1. Привет, я думаю, что ваш URL неверен. обычно вы не указываете на файл исходного кода. ваш контроллер может ответить в разделе localhost:<порт>/Сотрудник. пожалуйста, поделитесь также защитой контроллера и тем, как вы ее предоставляете в global.asax
2. @CarloCapuano Я обновил вопрос, как вы упомянули.
Ответ №1:
вы должны запустить свой веб-API с этого адреса http://localhost:18084/Employee
Комментарии:
1. Да, этот метод работает, но почему я не могу вызвать свой контроллер, как в веб-приложении MVC, всякий раз, когда я пытался запустить его. Таким образом, я должен всегда менять свой URL-адрес каждый раз, когда я запускаю свое приложение, по умолчанию мое приложение не запущено.
2. Вы не должны использовать имя «Контроллеры» в URL-адресе и суффикс .cs ( веб-приложение MVC работает не так ), эта ссылка может помочь вам проверить это