dav*_*v_i 7 c# asp.net-mvc razor
如果我有视图和部分视图,有什么方法可以将数据从部分视图传递给父视图?
所以,如果我有View.cshtml:
<div id="@someDataFromPartialSomehow">
@Html.Partial("_PartialView")
</div>
Run Code Online (Sandbox Code Playgroud)
而且_PartialView.cshtml:
@{ someDataFromPartialSomehow = "some-data" }
<div>
Some content
</div>
Run Code Online (Sandbox Code Playgroud)
我将如何实现这样的事情?
我尝试使用ViewBag.SomeDataFromPartialSomehow,但这只是导致null父.
一次尝试
要尝试解决在调用之前生成的数据问题,我试过这个:
View.cshtml:
@{ var result = Html.Partial("_PartialView"); }
<div id="@ViewData["Stuff"]">
@result
<div>
Run Code Online (Sandbox Code Playgroud)
_PartialView.cshtml:
@{ ViewData["Stuff"] = "foo"; }
<div>
Content
</div>
Run Code Online (Sandbox Code Playgroud)
但@ViewDate["Stuff"]不幸的是,召唤仍然没有任何结果.
Dar*_*rov 24
您可以使用HttpContext在视图之间共享状态.
@{
this.ViewContext.HttpContext.Items["Stuff"] = "some-data";
}
Run Code Online (Sandbox Code Playgroud)
然后:
@{ var result = Html.Partial("_PartialView"); }
<div id="@this.ViewContext.HttpContext.Items["Stuff"]">
@result
<div>
Run Code Online (Sandbox Code Playgroud)
除了您在问题中显示的示例:
<div id="@someDataFromPartialSomehow">
@Html.Partial("_PartialView")
</div>
Run Code Online (Sandbox Code Playgroud)
你试图使用someDataFromPartialSomehow甚至BEFORE调用部分视图,这显然是不可能的.
还要记住,你想要实现的是糟糕的设计.如果部分视图只能在某个特定父级的上下文中工作,那么您可能需要重新考虑视图分离.部分视图必须是独立和可重用的,无论它在哪种上下文中.如果它假定托管父母的事情,那么这里有一个严重的设计问题.
| 归档时间: |
|
| 查看次数: |
20029 次 |
| 最近记录: |