asp.net-mvc – mvc视图中的动态类型
发布时间:2020-05-23 22:15:39 所属栏目:asp.Net 来源:互联网
导读:Possible Duplicate: 07000 我试图在我的MVC应用程序中使用动态类型模型.我有以下代码: 在控制器中: var model = new { Name = test name, Family = m };return this.View(model); 在我看来,我有: @model dynamic@if(Model!=null){ p @Html.
我试图在我的MVC应用程序中使用动态类型模型.我有以下代码: var model = new { Name = "test name",Family = "m" };
return this.View(model);
在我看来,我有: @model dynamic
@if(Model!=null)
{
<p> @Html.Raw(Model.Name) </p>
}
当我运行这个时,我收到以下错误: 'object' does not contain a definition for 'Name' (System.Exception {Microsoft.CSharp.RuntimeBinder.RuntimeBinderException)
为什么我会收到此错误? 解决方法你所展示的不是动态类型.这是一种匿名类型.这是一个巨大的差异.您不能将匿名类型用作模型.这是因为编译器将匿名类型作为内部发出.这意味着只能使用当前程序集访问它们.但是正如您所知,Razor视图由ASP.NET运行时编译为单独的程序集,无法使用这些匿名类型. 显然,在这种情况下,正确的方法是使用视图模型: public class MyViewModel
{
public string Name { get; set; }
public string Family { get; set; }
}
然后让控制器操作将此视图模型传递给视图: var model = new MyViewModel { Name = "test name",Family = "m" };
return this.View(model);
以便您的视图可以使用它: @model MyViewModel
@if (Model != null)
{
<p>@Model.Name</p>
}
有些人(不是我,我永远不会推荐这样的东西)也使用ViewBag,这样他们就不需要模型了: ViewBag.Name = "test name"; ViewBag.Family = "m"; return this.View(); 然后在视图中: <p>@ViewBag.Name</p> (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.NET框架中的异步页面 – 其他线程在哪里,如何重新连接?
- .Net 更容易的使用配置文件 SuperConfig
- Asp.net禁用页面缓存的方法总结
- .net – 如何从ModelState键中删除前缀?
- asp.net-mvc – 为MVC3 DateTime设置DataFormatString
- asp.net-mvc – OpenID Connect的OWIN中间件 – 代码流(Flo
- asp.net-mvc-4 – ASP.NET MVC 4单独项目中的区域不工作(查
- asp.net-mvc-3 – 如何有效地从自相关表中加载数据
- asp.net – SignalR(Hub)可以发送除信号制作者之外的消息吗
- asp.net-mvc – 如何应用css类到mvccontrib网格
推荐文章
站长推荐
- 使用ASP.NET Web服务的jQuery AutoComplete(jQue
- asp.net – 估算Web应用程序峰值带宽需求的最准确
- asp.net-mvc – 构建与数据格式分离的ASP.NET MV
- asp.net-mvc – 在asp.net mvc中的redirecttoact
- asp.net-mvc – Chrome34忽略域名为“.cloudapp.
- asp.net – 呈现空转发器
- asp.net-mvc – ASP.Net T4MVC文件未自行更新
- asp.net – 如何在客户端上为CustomValidator控件
- asp.net – DotNetOpenAuth.WebServerClient.XSR
- 回发后用F5写的asp.net问题,因为它做了应有的事情
热点阅读
