ASP.NET MVC 2.0之显示列表和详细页面操作

关于ASP.NET MVC框架,-.NET频道向您推荐,本系列文章还包括

***篇《ASP.NET MVC 2.0之MVC框架简介

第二篇《ASP.NET MVC 2.0之如何运行WEB应用

第三篇《ASP.NET MVC 2.0之添加操作》

[[12233]]

创建View视图Index和NewsDetails

创建新闻首页,用来显示新闻列表。

在Views/News目录下,单击右键,选择Add->View,修改相关配置如下图所示

在生成的HTML代码中,进行相关展示方面的修改。主要代码如下:

 
 
 
 
  1. <% foreach (var item in Model) { %> 
  2.         <tr> 
  3.             <td> 
  4.       <%: Html.ActionLink("Edit", "NewsEdit", new { id=item.Id }) %> |  
  5.     <%: Html.ActionLink("Details", "NewsDetails", new { id=item.Id })%> |  
  6.  <%: Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })%> 
  7.             </td> 
  8.             <td> 
  9.                 <%: item.Title %> 
  10.             </td> 
  11.             <td> 
  12.                 <%: String.Format("{0:g}", item.CreateTime) %> 
  13.             </td> 
  14.             <td> 
  15.                 <%: item.Content %> 
  16.             </td> 
  17.         </tr> 
  18.     <% } %>  

使用Foreach循环遍历新闻List中的记录。

 
 
 
 
  1. <%: Html.ActionLink("Details", "NewsDetails", new { id=item.Id })%> 

此连接URL会寻找当前Controller下的NewsDetails Action方法,以新闻编号Id为参数进行传值。

同样的方法创建新闻详细页面视图NewsDetails.asp

生成的核心代码如下:

 
 
 
 
  1. <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 
  2.     <h2>详细内容</h2> 
  3.     <fieldset> 
  4.         <legend>新闻</legend> 
  5.         <div class="display-label">标题</div> 
  6.         <div class="display-field"><%: Model.Title %></div> 
  7.          
  8.         <div class="display-label">创建时间</div> 
  9.   <div class="display-field"><%: String.Format("{0:g}", Model.CreateTime) %>
  10. </div> 
  11.          
  12.         <div class="display-label">新闻内容</div> 
  13.         <div class="display-field"><%: Model.Content %></div> 
  14.          
  15.     </fieldset> 
  16.     <p> 
  17.         <%: Html.ActionLink("Edit", "NewsEdit", new { id=Model.Id }) %> |  
  18.         <%: Html.ActionLink("Back to List", "Index") %> 
  19.     </p> 
  20. </asp:Content> 

<%: Html.ActionLink("Edit", "NewsEdit", new { id=Model.Id }) %> | 此连接会跳转到新闻编辑页面,同样以新闻编号Id传值。

修改Controller文件

在Controllers/News文件下

修改Action Name=Index的方法,以使Index.aspx页面初始化数据,此处未读读取数据库,而是伪造了一些数据,且放到静态变量中:

 
 
 
 
  1. public static List<THelperMVC.Models.News.NewsModel> newsList; 

Index Action 代码如下:

 
 
 
 
  1. public ActionResult Index()  
  2.         {  
  3.              newsList= new List<THelperMVC.Models.News.NewsModel>();  
  4.             for (int i = 0; i < 10; i++)  
  5.             {  
  6. THelperMVC.Models.News.NewsModel news=new THelperMVC.Models.News.NewsModel();  
  7.                 news.Id = i;  
  8.                 news.Title = "Title" + i.ToString();  
  9.                 news.CreateTime = System.DateTime.Now;  
  10.                 news.Content = "Content 新?闻?内¨²容¨Y" + i.ToString();  
  11.                 newsList.Add(news);  
  12.             }  
  13.             return View(newsList);  
  14.         } 

使用For循环生成10条新闻记录。

修改NewsDetails.Aspx所对应的Action方法,如下

 
 
 
 
  1. // GET: /News/Details/5  
  2. public ActionResult NewsDetails(int id)  
  3. {  
  4.      THelperMVC.Models.News.NewsModel news=newsList[id];  
  5.      return View(news);  
  6. }   

根据URL传过来的参数(即新闻编号Id),从全局静态变量中寻找NewsModel实体,从而初始化新闻详细页面。

***修改母版页中的,News连接,如下图所示:

此时,点击首页的News超链接,会寻找NewsController文件夹下的Index方法,从而初始化Views/News/Index.aspx页面。

程序运行效果

按下Ctrl+F5运行程序,如下图所示:

点击上图中的【News】超链接,跳转到新闻列表页面,如下图所示:

点击Details超链接,会跳转到相应记录的详细页面,如下图所示:

原文标题:Asp.net MVC2.0系列文章-显示列表和详细页面操作

链接:http://www.cnblogs.com/ywqu/archive/2010/06/28/1766403.html

【编辑推荐】

  1. 添加设置ASP.NET Web时出现问题
  2. 详细说明ASP.NET 2.0功能支持
  3. 强化部署ASP.Net 2.0配置应用程序
  4. 微软PDC2009直击:改进ASP.NET 4运行时
  5. 详解ASP.NET MVC 2自定义验证
THE END