c# - 使用 ViewData 将对象传递给局部 View

标签 c# asp.net-mvc razor viewdata

我要为我的应用程序构建一个使用许多向导的助手。 对于我的观点,有一个简单的调用:

@using (var wiz = MyHelper.EditWizard(Translate(Keys.User.ChangePasswordTitle)))
{
    // RenderPartial(...)       
}

MyHelperHtmlHelper 自己的实现,它具有封装为属性的原始帮助对象。

由于向导可以包含多个步骤,因此内容可以拆分为多个部分 View 。 变量 wiz 有一些我需要在我的局部访问的公共(public)方法。

问题是,如何传递 wiz 对象?

EditWizard() 中,我试图将向导添加到 ViewData

myHelper.HtmlInternal.ViewData["currentWizard"] = theWizard;

但是,在我的部分,ViewData 字典总是空的。目前我尝试获取数据

var wiz = (Wizard)ViewData["currentWizard"];

但是wiz总是null

最佳答案

我们使用 HtmlHelper.Partial,它的第二个参数是一个对象模型:

@Html.Partial("YourWizardOrWhatever", wiz)

在这种情况下,Wiz 是作为局部 View 的模型提供的。您还可以转发整个模型:

@Html.Partial("YourWizardOrWhatever", Model)

或者您可以使用匿名类型来制作一些参数:

@Html.Partial("YourWizardOrWhatever", new { step = Model.Step, answer = Model.LastAnswerOrSomething })

关于c# - 使用 ViewData 将对象传递给局部 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36285060/

相关文章:

asp.net-mvc - 回调网址改变?与 %3f

javascript - 没有提交的 ASP.NET MVC ActionResult POST

javascript - Angular 服务器端呈现模板 (.cshtml) 使用转义符号解析错误

c# - 如何在实际需要之前初始化 C# 静态类?

c# - 绑定(bind)到依赖属性,而依赖属性又绑定(bind)到另一个绑定(bind)源

c# - 为 WebForms 网站项目添加 MVC 支持

c# - 在 C# 中捕获损坏的数据库约束 - 最佳实践

c# - 将隐藏字段的值传递给 ActionLink,然后传递给 Controller

c# - 使用 Visual Studio 2010 (VSTO) 进行 Office 开发,需要考虑的事项

c# - 如何在可视化树中查找元素? wp7