加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何在ASP.NET MVC部分视图中使用匿名列表作为模

发布时间:2020-12-15 20:36:36 所属栏目:asp.Net 来源:网络整理
导读:我有一个Contact对象的列表,我只想要一个属性的子集.所以我使用LINQ投影来创建一个匿名列表,并将其传递给局部视图.但是当我在部分视图中使用该列表时,编译器表示它没有这些属性.我尝试了最简单的情况如下,但我仍然没有机会在部分视图中使用匿名对象或列表. v
我有一个Contact对象的列表,我只想要一个属性的子集.所以我使用LINQ投影来创建一个匿名列表,并将其传递给局部视图.但是当我在部分视图中使用该列表时,编译器表示它没有这些属性.我尝试了最简单的情况如下,但我仍然没有机会在部分视图中使用匿名对象或列表.
var model = new { FirstName = "Saeed",LastName = "Neamati" };
return PartialView(model);

在局部看来,我有:

<h1>Your name is @Model.FirstName @Model.LastName<h1>

但是它表示@Model没有FirstName和LastName属性.这里有什么问题?当我使用@Model,这个字符串将在浏览器中呈现:

{ Title = "Saeed" }

解决方法

不要这样做不要将匿名对象传递给您的视图.它们的属性是内部的,在其他程序集中不可见.视图由ASP.NET运行时动态编译为单独的动态程序集.因此,定义视图模型并强烈地输入您的视图.喜欢这个:
public class PersonViewModel
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

接着:

var model = new PersonViewModel 
{ 
    FirstName = "Saeed",LastName = "Neamati" 
};
return PartialView(model);

在你看来:

@model PersonViewModel
<h1>Your name is @Model.FirstName @Model.LastName<h1>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读