我想从另一个应用程序中调用WebAPI并执行一些操作,我试图通过URL将一个应用程序中的参数传递到Web api中,但是在调用Web api时它不会在Web api中命中。< / p>
我创建了一个Web应用程序和一个Web API应用程序。我已将一个html模板添加到Web应用程序中,并添加了一个带有src标签的图像,其中包含Web API uri,并试图通过该uri传递参数,我正在尝试调试Web API 通过添加断点,每当图像加载到Web应用程序时,它都不会在Web API中被击中。 (都是我的应用程序都处于运行模式。)
这是我的html模板:
<form method="get">
<img src="http://localhost:59800/TrackEmail?fromemail={fromemail}&toemail={toemail}&uid={uid}" height="0" width="0" />
</form>
这是我的网络api代码:
public class TrackEmailController : ApiController
{
[Route("api/TrackEmail")]
[HttpGet]
public IHttpActionResult TrackEmail([FromUri]string fromemail, [FromUri]string toemail, [FromUri]string uid)
{
var context = new HttpContextWrapper(HttpContext.Current);
HttpRequestBase request = context.Request;
var agent = request.Browser.Browser;
SaveTrack(uid, fromemail, toemail, DateTime.Now, "R", agent);
return Ok();
}
private OracleConnection ocon;
private void connection()
{
//oracle database connection
}
public void SaveTrack(string uid, string fromEmail, string toEmail, DateTime date_time, string flag, string agent)
{
connection();
//database code
}
}
这是我的WebApiConfig.cs代码:
config.Routes.MapHttpRoute(
name: "MailApi",
routeTemplate: "api/{controller}/{fromemail}/{toemail}/{uid}",
defaults: new { fromemail = RouteParameter.Optional, toemail = RouteParameter.Optional, uid = RouteParameter.Optional }
);
可能是什么问题?请帮忙。
答案 0 :(得分:2)
**[Route("api/TrackEmail")]**
您的路由错误,缺少“ api /” 尝试
<form method="get">
<img src="http://localhost:59800/api/TrackEmail?fromemail={fromemail}&toemail={toemail}&uid={uid}" height="0" width="0" />
</form>