博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
路由 asp.net mvc html,asp.net-mvc – 为什么需要为Html.Action定义的路由?
阅读量:5109 次
发布时间:2019-06-13

本文共 1198 字,大约阅读时间需要 3 分钟。

我用2个控制器,HomeController和OtherController创建了一个空的ASP.NET MVC 3应用程序.

HomeController.cs看起来像这样:

public class HomeController : Controller

{

public ActionResult Index()

{

return View();

}

}

Index.cshtml看起来像这样:

@Html.Action("Index", "Other")

而且,当然,Othercontroller.cs:

public class OtherController : Controller

{

[ChildActionOnly]

public ActionResult Index()

{

return Content("OK!");

}

}

到现在为止还挺好.我运行应用程序,它告诉我一切正常!

现在,我从Global.asax.cs获取默认的RegisterRoutes:

public static void RegisterRoutes(RouteCollection routes)

{

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(

"Default", // Route name

"{controller}/{action}/{id}", // URL with parameters

new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults

);

}

我把它弄皱了,所以没有路由匹配OtherController:

public static void RegisterRoutes(RouteCollection routes)

{

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute("Default", "", new { controller = "Home", action = "Index" });

}

现在,当我运行该页面时,它会崩溃并显示以下错误消息:

System.InvalidOperationException: No route in the route table matches the supplied values.

Source Error:

Line 1: @Html.Action("Index", "Other")

我在.Action调用中指定了控制器名称和操作名称.没有生成任何URL,也没有请求.为什么路由甚至需要参与?

转载地址:http://urjdv.baihongyu.com/

你可能感兴趣的文章
mybatis调用存储过程,获取返回的游标
查看>>
设计模式之装饰模式(结构型)
查看>>
面向对象的设计原则
查看>>
Swift3.0服务端开发(三) Mustache页面模板与日志记录
查看>>
【转】 FPGA设计的四种常用思想与技巧
查看>>
EntityFrameWork 实现实体类和DBContext分离在不同类库
查看>>
新手算法学习之路----二叉树(在一个二叉查找树中插入一个节点)
查看>>
autopep8
查看>>
GIT在Linux上的安装和使用简介
查看>>
基于C#编程语言的Mysql常用操作
查看>>
s3c2440实验---定时器
查看>>
HBase配置性能调优(转)
查看>>
MyEclipse10安装SVN插件
查看>>
[转]: 视图和表的区别和联系
查看>>
Regular Experssion
查看>>
图论例题1——NOIP2015信息传递
查看>>
uCOS-II中的任务切换-图解多种任务调度时机与问题
查看>>
CocoaPods的安装和使用那些事(Xcode 7.2,iOS 9.2,Swift)
查看>>
Android 官方新手指导教程
查看>>
幸运转盘v1.0 【附视频】我的Android原创处女作,请支持!
查看>>