我希望能够将一个模板中定义的变量传递给另一个模板,第一个模板包含该变量:
模板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"
有没有办法传递变量而不先将它绑定到模型?
答案 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模型是概念上表示该视图中数据的任何内容。