【发布时间】:2016-10-22 01:04:59
【问题描述】:
我需要更新一些静态网页,我想利用这段时间在 Visual Studio 2015 中使用 ASP.NET Core(带有 MVC 6 的 ASP.NET 5)重新创建它们。我想使用Microsoft 的最新技术可让您在未来更轻松地进行更改。
当我在 localhost 上启动项目时,默认网站加载正常,但任何链接页面都会中断,因为它们默认路由到 /Home 控制器。此外,当 MVC 嵌套这些页面时,找不到项目的 jquery、css 或 图像。
在Startup.cs文件中,有如下方法:
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
app.UseBrowserLink();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseIdentity();
// Add external authentication middleware below. To configure them please see http://go.microsoft.com/fwlink/?LinkID=532715
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
这是开箱即用的配置方式。
我们公司不希望/Home(或其他任何内容)停留在其所有网页的 URL 上。
我为不同的页面创建了各种 IActionResult 方法,但它们都做同样的事情:
public IActionResult Index()
{
return View();
}
我们也有公司链接到我们的网站。更改我们页面的结构将导致其他公司也停止并进行更改。
如何获取一个字符串,例如{controller}/{action}/{id?},并让它返回一个典型的链接,例如action.aspx?id=x?
或者,有没有办法告诉 MVC 不要为某些页面使用模板?
如果这是愚蠢的基础,我深表歉意。我通常使用 Windows 窗体。
【问题讨论】:
-
当您不愿意利用底层框架时,我不确定您的练习有什么好处。如果 MVC 不是你想要的东西,那么我建议坚持你手头的东西。
-
@Saleem,当微软不在 MCV 中(主要是社交媒体集成)时,与微软合作变得越来越困难。如果我从不开始学习它的一部分,我将永远不知道如何使用它。
标签: c# asp.net-core asp.net-core-mvc asp.net-routing