我正在ASP.NET Web表单上学习WEB API,并且已经在我的项目中实现了它,以便以模式显示一些数据,但是我不知道api url是如何创建的。
这是我的AJAX电话
<script type="text/javascript">
function ShowUserModal(lnk, IdColaborador) {
debugger
//var s = lnk.id;
//var start = s.indexOf("lnkEdit");
//var end = s.lastIndexOf("_");
//sub = s.substring(start, end);
//s = s.replace(sub, "IdMatriz");
//var hidden = document.getElementById(s);
//var id = hidden.value;
//alert(id);
var uri = 'api/users/';
$.ajax({
URL: uri,
type: 'POST',
dataType: 'json',
contentType: 'application/json; charset=utf-8',
data: IdColaborador,
success: function (data) {
alert("Saved successfully");
},
fail: function(jqXHR, textStatus) {
alert("Request failed: " + textStatus);
}
})
}
</script>
这是我的控制器
public class UsersController : ApiController
{
public User user { get; set; }
//public IEnumerable<User> GetAllUsers()
//{
// return users;
//}
public IHttpActionResult GetUser(int id)
{
user = new User();
string constr = ConfigurationManager.ConnectionStrings["ControloInterno_ConnectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("spOperadores", con))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Action", "SELECTINF");
cmd.Parameters.AddWithValue("@IdColaborador", id);
con.Open();
using(SqlDataReader sdr = cmd.ExecuteReader())
{
while (sdr.Read())
{
user.Nome = sdr["Nome"].ToString();
user.Criador = sdr["criador"].ToString();
user.DataAdm = Convert.ToDateTime(sdr["dataadmin"]);
user.AltData = Convert.ToDateTime(sdr["AltData"]);
user.Telemovel = sdr["tele"].ToString();
user.Departamento = sdr["Departamento"].ToString();
user.status = sdr["status"].ToString();
user.DescricaoPerfil = sdr["DescricaoPerfil"].ToString();
user.Observacoes = sdr["Observacoes"].ToString();
}
}
}
}
return Ok(user);
}
}
我必须在global.asax中使用它
protected void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = System.Web.Http.RouteParameter.Optional }
);
}
所以我的问题是,URL是如何生成的?如果我的控制器叫UsersController且类叫User
,为什么叫api / users答案 0 :(得分:1)
如果使用属性路由,请确保在HttpConfiguration上调用以下函数:
// Web API routes
config.MapHttpAttributeRoutes();
您可以在此处阅读有关属性路由的更多信息: Web api attribute routing 或者,如果您将使用MVC代替,请阅读此处: Attribute routing in MVC