.net 4.5 razor - 将局部变量传递给partial

时间:2013-08-28 12:31:16

标签: .net razor

我希望能够将一个模板中定义的变量传递给另一个模板,第一个模板包含该变量:

模板1:

@{string datetype= "beforethisyear"}
@RenderPage("Template2.cshtml", datetype)

模板2:

<input type="text" data-datetype="@datetype"/>

不幸的是,这会在模板2中产生错误:

"The name 'datetype' does not exist in the current context"

有没有办法传递变量而不先将它绑定到模型?

2 个答案:

答案 0 :(得分:1)

我说你可以使用ViewBag来实现这个

@{ViewBag.Datetype = "beforethisyear"}

<input type="text" data-datetype="@ViewBag.Datetype"/>

答案 1 :(得分:1)

使用ViewBag:

模板1:

@{ ViewBag.DateType = "beforethisyear"; }

则Template2:

<input type="text" data-datetype="@ViewBag.DateType"/>

这正是ViewBag的用途 - 传递仅查看数据。请注意,如果您传递的数据实际上是或应该是数据模型的一部分,那么您应该真正使用模型的属性。鉴于您的变量的名称,我猜测应该成为模型的一部分。请注意,Model不一定是您的数据类(即表示表中行的实体),MVC中的View模型是概念上表示该视图中数据的任何内容。