我最想拥有一个静态网站,但我制作了它并且ASP.NET-MVC应用程序提供了一个简单的http post请求来保存数据库中的东西。有时将来可能会有一个View实现,但目前还没有。 我发现的是一些奇怪的行为,我无法解释为什么?
网站结构是:
Root/
index.html
test.html
img/
image.png
test.html
服务器是IIS 8.9托管。
我的路线配置和控制器是:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "ApiPostData",
url: "api/{action}",
defaults: new { controller = "Api" }
);
}
public class ApiController : Controller
{
[HttpPost]
public JsonResult PostSomeData(SomeData someData)
{
// save to database
return Json(true);
}
}
但他的表现完全错误且不可预测: 在示例中:
www.mysite.com - >显示index.html确定
www.mysite.com/index.html - >错误500
www.mysite.com/img/image.png - >图像是shwon,这是好的
www.mysite.com/img/test.html - >错误500
www.mysite.com/api/postsomedata - >按原样调用控制器方法
这完全是不合逻辑的。为什么服务器区分静态上下文。 我需要解释此行为以及强制IIS提供静态内容的方法。