Asp.Net MVC3 让你疯狂的5个理由

最近突然发现MVC3其中自带好多内容我都还未灵活运用,真是可惜可惜,在上一篇中为了实现分页我零零散散的写了2个类 + view视图实现,但是看过MVC3自带的好东西,我对MVC3更加喜欢了。

1、Razor视图引擎

       我不得不说,Razor视图引擎太酷了,我喜欢它那清爽的代码风格,它使用@符号表示代码块,下面的代码在Razor都是合法的:

以下为引用的内容:

@foreach (var item in Model) {  
    <b>@item.FullName</b> 


       2、新的助手

       助手一直是ASP.NET MVC和其它MVC框架相比不足的地方,ASP.NET MVC 3提供了新的助手,将会缩小这一领域和竞争对手的差距。

       Chart:帮助创建图表,非常好用。

       WebGrid:以网格形式呈现对象集合,包括分页和排序功能,可以输出为一个普通的HTML表格。

        WebImage:帮助创建图像,也包括基本的图像操作方法,如旋转,放大,缩小等。

       WebMail:用来发送电子邮件。

        下一代助手被称为“基于任务的助手”,本来包含在测试版中,但现在又看不到了,我希望在最终正式版中能见到它,因为它是那样的让我迷恋。

        Video:包含Video.Flash,Video.Silverlight和Video.MediaPlayer等方法,允许添加它们对应的HTML标签。

        Twitter:包含基本的twitter操作,如呈现一个特定用户的twitter流,或一个给定搜索的结果。

        ReCapcha:帮助使用reCAPTCHA服务。

        Gravatar:从Gravatar服务指定一个用户头像。

        Analytics:为不同的分析服务提供不同的方法,如GetGoogleHtml,GetStatCounterHtml或GetYahooHtml,提供需要的JavaScript代码。

        3、支持基于jQuery的Ajax

        在ASP.NET MVC 3中,Ajax.ActionLink,Ajax.RouteLink,Ajax.BeginForm和Ajax.BeginRouteForm将使用jQuery连接服务器,此外,它们不会使用内联JavaScript,它们会调用JavaScript文件中提供的函数,客户端验证也与此类似。

        4、新的依赖注入(Dependency Injection)支持带来更好的扩展性

        ASP.NET MVC 3将包含大量的扩展,几乎任何事情都可以使用依赖注入进行扩展。

        5、集成NuPack

        NuPack是微软新的打包系统,它完全和ASP.NET MVC 3集成到一起,在“解决方案资源管理器”的“引用”文件夹上点击右键,选择“添加包引用”,如下图所示。

图 1 添加包引用

       接着会弹出NuPack界面,在这里你可以选择不同的库,如下图所示。

   

图 2 NuPack添加包引用的界面

------------------------------------------------------------------------------------

知识是引路灯,主要还是实践!

分页的使用WebGrid:

Control:

public ActionResult WebGrid()
        {

    //取得数据
            MercuryDbExEntities db = new MercuryDbExEntities();
            var result = db.Users.ToList();

            ViewData.Model = result;
            return View();
        }

View:

@using Mvc3_Test.DataBase
@model IEnumerable<Mvc3_Test.DataBase.Users>
@{
    ViewBag.Title = "WebGrid";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>WebGrid</h2>

@{
    var grid = new WebGrid(source: Model,
    fieldNamePrefix: "grid_",
    defaultSort: "Id",
    canPage:true,
    canSort:true,
    ajaxUpdateContainerId:"DivGrid",
    pageFieldName:"paging",
    sortFieldName:"soutField",
    rowsPerPage:10);
}
<div id="DivGrid">
    @grid.GetHtml(
        columns:grid.Columns(
            grid.Column("Id","ID"),
            grid.Column("loginName","LoginName")
        )
    )
</div>

就这样一个分页完成了。

原文地址:https://www.cnblogs.com/hedywqy/p/2103344.html