ASP.net MVC 同一view或页面使用多个Model或数据集的方法

 我不擅长写博客...内容尽量简单吧..仅作示例.. 

asp.net MVC中,一次默认只能返回一个Model,如果调用多个数据集,只能用ViewData来导来导去,好像很麻烦,所以,可以给model扩展方法来实现...我只是入门学习者,可能不太懂,也描述的不太清楚,如果能有更好的方法或建议..

 

首先,在控制器中定义一个类,内容如下: 

 

Code
    
public   class  lviewModel
    
{
        
public List<Sorts> sortList getprivate set; }
        
public List<Articles> artList getprivate set; }
        
public lviewModel(List<Models.Sorts> sortlists, List<Models.Articles> artlists)
        
{
            
this.sortList = sortlists;
            
this.artList = artlists;
        }


    }

 

以此来接收两个list,然后 返回的时候 

            Models.ESCMSContext escms  =   new  ESCMS_MVC_SQL.Models.ESCMSContext();

            
return  View( new  lviewModel(escms.sortList(), escms.artList()));

 

在使用的时候

视图文件的第一行要引用 

 

<% @ Page Title = ""  Language = " C# "  MasterPageFile = " ~/Views/Shared/Site.Master "  Inherits = " System.Web.Mvc.ViewPage<ESCMS_MVC_SQL.Controllers.lviewModel> "   %>

 

ESCMS_MVC_SQL改成你项目的名称

 

然后就可以

 

 Model.artList

 Model.sortList

 

这样来用了

 

Code

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

    
<form id="form1" runat="server">

    
<h2>list</h2>

        
<table>
        
<tr>
            
<th></th>
            
<th>
                ArtID
            
</th>
            
<th>
                ArtTitle
            
</th>
            
<th>
                ArtSort
            
</th>
            
<th>
                ArtSort
            
</th>
        
</tr>

    
<% foreach (var item in Model.artList)
       
%>
    
        
<tr>
            
<td>
                
<%= Html.ActionLink("Edit""Edit"new { id=item.ArtID }%> |
                
<%= Html.ActionLink("Details""Details"new { id=item.ArtID })%>
            
</td>
            
<td>
                
<%= Html.Encode(item.ArtID) %>
            
</td>
            
<td>
                
<%= Html.Encode(item.ArtTitle) %>
            
</td>
            
<td>
                
<%= Html.Encode(item.ArtSort) %>
            
</td>
 
<td>
                
<%= Html.Encode(item.Sorts.SortName) %>
            
</td>
        
</tr>
    
    
<% }
 %>

    
</table>
    
        
<table>
        
<tr>
            
<th>aa</th>
            
<th>bb</th>
        
</tr>

    
<% foreach (var item in Model.sortList)
       
%>
    
        
<tr>
            
<td>
                
<%= Html.ActionLink("Edit""Edit"new /**//* id=item.PrimaryKey */ }%> |
                
<%= Html.ActionLink("Details""Details"new /**//* id=item.PrimaryKey */ })%>
            
</td>
            
<td>
                
<%= Html.Encode(item.SortName) %> 
            
</td>
        
</tr>
    
    
<% }
 %>

    
</table>
    
</form>

</asp:Content>


 

这样就可以了..还算简单,就是之前有些绕...我觉得微软应默认提供这样的类,写起来才方便..

转载于:https://www.cnblogs.com/gsyifan/archive/2009/10/23/1588825.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值