【发布时间】:2017-08-17 17:45:24
【问题描述】:
我想我并不完全理解 urls 如何与 C# 项目一起工作,因为我不知道如何指定一个 url 来通过控制器而不仅仅是返回一个 aspx 页面。
假设我正在尝试通过名为“ScholarshipController.cs”的控制器访问我的项目的索引页面。我想在这个控制器中点击 Index 方法/动作,我的 url 如下(我的应用程序的名称是“TuitionAssistance”fyi):
http://localhost/TuitionAssistance/Scholarship/Index
但是,运行此 url 只会返回位于“Scholarship”视图文件中名为“Index.aspx”的 aspx 页面,而无需点击控制器。为什么会发生这种情况?如何让它通过控制器,以便索引页面在加载时会加载适当的信息?
抱歉,这是一个愚蠢的问题。任何见解将不胜感激。谢谢!
Route.config:
using System.Web.Mvc;
using System.Web.Routing;
namespace ScholarshipTuitionAssistance
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
/* Scholarship */
/* Scholarship */
//routes.MapRoute("TuitionAssistance",
// "tuition/{name}",
// new { controller = "TuitionAssistance", action = "Index", name = "" });
routes.MapRoute(
name: "TuitionAssistance",
url: "{controller}/{action}/{employee_number}",
defaults: new { controller = "Home", action = "TuitionAssistance", employee_number = UrlParameter.Optional }
);
routes.MapRoute(
name: "Scholarship",
url: "{controller}/{action}/{employee_number}",
defaults: new { controller = "Home", action = "Scholarship", employee_number = UrlParameter.Optional }
);
routes.MapRoute(
name: "Details",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Scholarship", action = "Details", id = UrlParameter.Optional }
);
}
}
}
【问题讨论】:
-
向我们展示 RouteConfig 类。它应该在 App_Start 文件夹中。
-
刚刚添加到我的帖子中。谢谢
-
我很犹豫要不要碰任何东西,因为一切似乎都在生产中。只是当我尝试在本地运行时它吐在我的脸上......
-
所有 3 条路由都是相同的,因为它们接受 0 到 3 个段。第 2 和第 3 路由定义毫无意义,因为它们永远不会被执行(任何匹配它们的 url 也将匹配第 1 路由)。而且您显示的所有路线都不会与您显示的网址匹配。
-
谢谢!我以前从未使用过路线,所以这是我希望得到的信息!
标签: c# asp.net-mvc-4 web controller