MVC基础知识学习总结

先看下**.cshtml文件里的

<p>
    请输入用户名和密码。如果您没有帐户,请 @Html.ActionLink("注册", "Register",new {TRTR=3})。
</p>
上面这个@Html.ActionLink("注册","Register",new {TRTR=3})会被解析成一个超链接的形式
<a href="/Account/Register/3">注册</a>
下面问题来了,我们改怎么获取这个3呢?
如果上面的代码改这样的:@Html.ActionLink("注册","Register",new {page=3}),我们想要获取这个3的话,只需要用@Request.QuestString["page"]就可以得到这个3了。但是由于上面的参数是TRTR,这个TRTR与MapRoute里面的trtr是一样的,所以是默认的。所以浏览器会直接解析成<a href="/Account/Register/3">注册</a>。那么获取默认的路由id怎么获取呢?
1.<pre class="csharp" name="code">public ActionResult Register(int id)  //这个id就是默认的3 
  {  
  ViewData["id"] = id;   
  return View();  
  }  

然后在cshtml文件里直接用ViewData["id"]。当然这里用ViewBag.id=id也可以。
2.<label>@Request.RequestContext.RouteData.Values["TRTR"];</label><br/>

这样也可以获取到3
3 <label>@ViewContext.RouteData.Values["trtr"];</label><br/>
  <label>@ViewContext.RouteData.Values["action"]</label><br />
  <label>@ViewContext.RouteData.Values["controller"]</label><br />
这样也可以直接获取默认的路由Controller,action,还有后面的参数3

注册路由的文件里的:Global.asax.cs文件里的代码:

 public class MvcApplication : System.Web.HttpApplication
    {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new HandleErrorAttribute());
        }

        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Default", // 路由名称
                "{controller}/{action}/{trtr}", // 带有参数的 URL
                new { controller = "Home", action = "Index", trtr = UrlParameter.Optional } // 参数默认值
            );

        }

        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            // 默认情况下对 Entity Framework 使用 LocalDB
            Database.DefaultConnectionFactory = new SqlConnectionFactory(@"Data Source=(localdb)\v11.0; Integrated Security=True; MultipleActiveResultSets=True");

            RegisterGlobalFilters(GlobalFilters.Filters);
            RegisterRoutes(RouteTable.Routes);
        }
    }



 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值