- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 Visual Studio 中创建了一个默认的 ASP .NET MVC 4 Internet 应用程序。
在_Layout.cshtml中,对于Home、About和Contact三个 Action 链接的情况,home 链接转到 http://localhost
,但其他两个链接转到相应的操作和 Controller ((http://localhost/home/about
) 和(http://localhost/home/contact
))。
为什么会出现这样的差异。仅仅因为家庭 Controller 的索引操作是默认的,编译器是否认为 home 的 html.action 链接将转到 http://localhost
并且不是 http://localhost/home/index
。 ?
这是_Layout.cshtml中的代码
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
<li>@Html.ActionLink("Contact", "Contact", "Home")</li>
routeconfig.cs中的代码是
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
编辑
我知道 http://localhost
将重定向到 home Controller 的 index 操作,但为什么 html.actionlink 给出了链接作为 http://localhost
而不是 http://localhost/home/index
。 ?
编辑2
routeconfig 中的这个 defaults 意味着如果 url 只是本地主机,则只有默认操作和 Controller 才会被执行。执行routeconfig时,解析的url为localhost。我的问题是为什么不是 localhost/home/index,因为在 actionlink 中我们指定了 Controller 和操作的名称?编译器是否如此智能以至于 localhost/home/index 的 url 被简单地转换为 localhost?
我知道本地主机被重定向到主 Controller 的索引操作,但我的问题是在_Layout.cshtml指定的主页中,为什么主页链接的url与那个不同关于和联系人?
最佳答案
可能是因为这个:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new {
controller = "Home",
action = "Index",
id = UrlParameter.Optional }
);
您为 defaults
传递的内容...
关于c# - 在 asp .net mvc 中路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23148371/
我是一名优秀的程序员,十分优秀!