【发布时间】:2014-09-18 10:20:41
【问题描述】:
我正在学习MVC,目前正在研究路由。
我有以下问题:这是我的 RegisterRoutes 方法:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("Customer", "{controller}/{action}/{objCustomer}",
new {controller = "Customer", action = "CreateCustomer", id = UrlParameter.Optional});
}
如果我运行我的应用程序,hxxp://localhost:12454/ 是否应该在 CustomerController 中不显示 CreateCustomer 操作调用的视图,换句话说,URL 应该是这样的? hxxp://localhost:12454/Customer/CreateCustomer
注意:我将 http 替换为 hxxp,而不是尝试创建链接
我在这里没有正确理解什么?
这是我的整个 Global.asax.cs 课程。
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("Customer", "{controller}/{action}",
new { controller = "Customer", action = "CreateCustomer", UrlParameter.Optional});
}
}
这是我的客户控制器:
public class CustomerController : Controller
{
// GET: Customer
public ActionResult ShowCustomer(Customer objCustomer)
{
return View(objCustomer);
}
public ActionResult CreateCustomer()
{
return View();
}
}
【问题讨论】:
-
只需检查您的路线中是否有额外的
, UrlParameter.Optional -
确保这条路线高于所有其他路线
-
你的意思是这条路线应该高于所有其他路线?我只定义了这一条路线。
-
我在 Model 文件夹中还有一个名为 Customer 的模型。这会导致任何问题吗?
-
我不这么认为..试试吧..我的意思是说从 global.asax 文件中删除此路由并将其粘贴到 appstart 中 routeconfig.cs 文件中的默认路由上方文件夹。
标签: c# asp.net-mvc asp.net-mvc-routing url-routing