ASP.NET MVC3 Razor 布局页和分部页 使用model

我在分部页中需要用到一个模型来读取XML中的数据,但是当我启动运行的时候会报错,内容是:传入字典的模型项的类型为“System.Collections.Generic.L... 我在分部页中需要用到一个模型来读取XML中的数据,但是当我启动运行的时候会报错,内容是:传入字典的模型项的类型为“System.Collections.Generic.List`1[Poplar.ERP.Razor.MVC.Models.UserModel]”,但此字典需要类型“System.Collections.Generic.IEnumerable`1[Poplar.ERP.Razor.MVC.Models.MainMenu]”的模型项。UserModel这个是我的一个用户页面需要的Model,分部页需要MainMenu这个。找了好久没法解决啊。高人指点下吧。。。。 展开
 我来答
N_0_1
高粉答主

2015-10-31 · 关注我不会让你失望
知道大有可为答主
回答量:8628
采纳率:47%
帮助的人:828万
展开全部
asp.net MVC 4.0中总结 视图里加载布局页和分部页几种方法
@RenderPage()
但它不能使用 原来视图的 Model 和 ViewData ,只能通过参数来传递。
1 @RenderPage("~/Shared/Component/Dialog.cshtml", new { title = "Hello world!", content="Nani" })

分部视图接收数据通过Page
1 <div id="dialog" title="@Page.title" style="display: none;">
2 <p>
3 @Page.title
4 </p>
5 </div>

@Html.Partial()
用于将分部视图渲染为字符串
@Html.Partial("_PartialPage1",model,ViewData)直接返回MvcHtmlString填充
1 @Html.Partial("Component/Dialog", null, new ViewDataDictionary { { "title", "Hello world!" }, { "content", "Nani?" } })

Razor子视图里使用 ViewBag 来获取传递的数据
1 <div id="dialog" title="@ViewBag.title" style="display: none;">
2 <p>
3 @ViewBag.content
4 </p>
5 </div>

传递强类型到部分视图
1 @{
2 var args = new Dictionary<string,string>();
3 args["redirectController"] = "Admin";
4 args["redirectAction"] = "User";
5 }
6 @Html.Partial("_childPartial",args)

_childPartial.cshtml
1 @model Dictionary<string,string>
2 <div>@Model["redirectController"]</div>
3 <div>@Model["redirectAction"]</div>

@RenderPartial()
将分布视图直接写入响应输出流,所以只能直接放在代码块中,不能放在表达式中(返回值是void)
RenderPartial 不需要创建 Controller 的 Action ,而 RenderAction 需要在 Controller创建要加载的 Action。 RenderAction 会先去调用 Contorller 的 Action ,最后再 呈现视图,所以这里 页面会在 发起一个链接。 如果这个部分视图只是一些简单 的 html 代码,请使用 RenderPartial。 但如果这个部分视图 除了有 html 代码外,还需要 通过 读取数据库里的数据 来渲染,就必须使用 RenderAction 了,因为 它可以在 Action 里调用 Model里的 法读取数据库,渲染视图后在呈现,而 RenderPartial 没有 Action,所以无法做到。
Partial 可以直接输出内容,它内部是 将 html 内容转换为 string 字符(MVCHtmlString),然后缓存起来, 最后在一次性输出到页面。显然,这个转换的过程,会降低效率,所以通常使用 RenderPartial 代替。

@Html.Action()
scheshan
推荐于2018-04-07 · TA获得超过1789个赞
知道小有建树答主
回答量:958
采纳率:0%
帮助的人:1266万
展开全部
@Html.RenderPartial("_Partial", MainMenuList);

在加载分布页时,第2个参数即是分部页绑定的模型实体..你强制指定一个,否则,会自定把页面绑定的模型指定为分部页的绑定模型
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fgddfg11
2014-11-20 · 超过52用户采纳过TA的回答
知道答主
回答量:109
采纳率:0%
帮助的人:126万
展开全部
参考答案: 人生重要的不是所站的位置,而是所朝的方向。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式