[英]ASP.Net Core Web Application (.Net Framework) created with VS2015 creates a dodgy looking project
[英]Setting project url in VS2015 ASP.NET 5 Web API application
我正在尝试创建一个 Web API 项目和一个客户端 Web 项目,其中 Web 项目可以通过 ajax 访问 API。 目前我的项目是这样的:
我在这里看到了这个答案: 将应用程序设置为单独的 Web API 项目和 ASP.NET 应用程序,它解释了如何将项目 url 设置为localhost:[port]/api 。
但是对于 ASP.NET 5 项目,属性只有 3 个选项卡(与 ASP.NET 4 项目中的几个选项卡相反):
我想知道的是:
任何帮助,将不胜感激!
第一点:
一般来说,在 ASP.NET 5 中,路由默认值非常好,应该开箱即用,无需太多配置。 您可以在您的应用程序中使用配置和/或基于属性的路由( 此处详细概述了两者),尽管我个人更喜欢属性方法。 假设您的 Startup.cs 文件中有以下行(您应该在新项目中):
app.UseMvc();
您应该能够以所需的方式(即“/api/...”)将请求路由到您的 api 控制器,只需使用如下 [Route] 属性(示例取自标准生成的 ASP.NET 5 Web API 应用程序)
[Route("api/[controller]")]
public class ValuesController : Controller
{
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
}
上面的例子将任何 GET 请求路由到“/api/values”。
虽然此方法可用于处理对您的 api 发出的请求,但为了交付前端 javascript 应用程序/单页应用程序所需的文件,您需要启用静态文件服务。 如果将以下内容添加到 Startup.cs 类中的 Configure 方法:
app.UseStaticFiles();
这将允许您的应用程序提供这些静态文件 - 默认情况下,这些文件是从“wwwroot”文件夹提供的,尽管如果需要,可以在 project.json 文件中更改。 然后应将前端应用程序所需的文件添加到此文件夹中。 可以在此处找到有关提供静态文件的教程。
第二点:
根据我的经验,当您发布网站时,这不会成为问题 - 只要您的服务器设置正确,您在发出请求时就不需要包含端口 - 导航到 [yourwebsitename]/api/... 就足够了。
第三点:
在我看来,这完全取决于项目可能增长的规模,尽管偏好和意见因开发人员而异。 一般来说,如果项目的范围仍然很小,那么将两者保留在一个项目中是完全可以的,因为减少了不必要的复杂性。 然而,正如您所指出的,它也非常有用,可以保持项目之间的关注点分离。 因此,除了您的方法的组织优势之外,两个项目的各自依赖项也/将保持分开。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.