asp.net MVC学习笔记

以MVC3为例,了解MVC的运行原理。


从核心的控制器下手,先进行了简单的测试:

        public string Browse(string title)
        {
            string message = HttpUtility.HtmlEncode("store.browse.title=" + title);
            return message;
        }

        public string Test(int id)
        {
            string message = "the id is" + id.ToString();
            return message;
        }

自定义了一个叫Store的controller,里面包含两个方法:Browse和Test

第一个方法接受一个title的字符串参数,结果返回title的内容到页面上。


第二个方法接受一个id的参数,结果也输出id

调用时发现这样的特点:

localhost:xxxx/store/Browse?title=123   这时会输出123到页面上。

localhost:xxxx/store/Test?id=456 和localhost:xxxx/store/Test/456 都会输出456到页面上。

由此可知,

1.controller中的参数会以查询字符串的形式接收url中的参数值。

2.localhost:xxxx/store/Test/456 会以默认路由规则把456当做id的参数进行处理


路由配置如下:

routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
            );


关于视图。

视图中可以定义一些动态变量,以@开头,在controller中可以给这些动态变量赋值,进行数据传递。

如:

<h2>@ViewBag.Message</h2>
<p>
@ViewBag.Test
    To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
</p>

public ActionResult Index()
{
      ViewBag.Message = "Welcome to ASP.NET MVC!";
      ViewBag.Test = "wangjue test"; 
      ViewData["Test"] = "wangjue test";
      return View();
}

其中,ViewBag.Test 和 ViewData["Test"]这两种赋值的写法是类似的。

为了防止视图中变量的二义性,可以使用()将变量部分括起来。

如果要输出@,需要用两个@来进行转义。


在视图中定义的变量内容为html或脚本时,默认输出的转义后的字符串文本,不会执行脚本,想要执行脚本,可以使用@Html.raw(str)方法。

在razor代码块中混合纯文本的方法:

@if(true){

  <text>this is a text</text>

}

可以采用text标签,标签不会输出,输出的是标签中的文字。

注释使用@*   *@

使用泛型的时候必须用圆括号括起来(因为泛型使用尖括号,引起歧义)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值