使用Spark视图引擎在局部视图中使用不同的viewmodel

时间:2010-01-11 13:47:58

标签: asp.net asp.net-mvc spark-view-engine

使用ASP.NET MVC& Spark,我有一个列出了许多搜索的视图。该视图顶部有以下声明:

<viewdata model="IEnumerable<SearchModel>" />

在同一个搜索页面上,我还渲染了一个部分,用作弹出窗口的内容,使用户可以添加新搜索。

我的问题是:在局部视图中我想使用强类型HTML帮助器并写:

${Html.TextBoxFor(model => model.SearchPhrase)}

但是当我添加另一个时:

<viewdata model="CreateSearchModel" />

在部分视图文件的顶部,Spark失败,只能声明一个viewdata模型。

我可以使用普通的HTML助手,但是如何在这个局部视图中获得使用强类型HTML助手的好处 - 或者有更好的方法吗?

2 个答案:

答案 0 :(得分:8)

而不是&lt; use file =“partial”/&gt;尝试做

# Html.RenderPartial("partial", mydata);

这应解决单一模型限制。

答案 1 :(得分:0)

你不能让你的部分视图标题为:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<CreateSearchModel>" %>

并使用

<% Html.RenderPartial("../PartialView", (CreateSearchModel)ViewData["MyCreateSearchModel"] ); %>