jon*_*nas 1 asp.net asp.net-mvc-3
我正在asp.net mvc 3中创建一个简单的网页.
我有一个侧边栏加载随机引用,侧边栏在每个页面上,所以它是布局的一部分,独立于控制器.
从该视图访问数据模型的正确方法是什么?我是否必须从每个控制器传递数据?
我的部分视图文件看起来像:
@model MvcApplication1.Models.CitationModel
@Model.Citation
Run Code Online (Sandbox Code Playgroud)
但这导致空引用.
模型就像
public class CitationModel
{
public string Citation{ get { return "Test"; } }
}
Run Code Online (Sandbox Code Playgroud)
我会通过儿童行动来做到这一点.这样,您可以保持视图强类型(没有viewbag或viewdata),而不必将其放入发送到您的布局的"主"视图模型中:
<div id="sidebar">
@Html.Action("RandomCitations", "Citations")
</div>
Run Code Online (Sandbox Code Playgroud)
在CitationsController中:
[ChildActionOnly]
public PartialViewResult RandomCitations()
{
var model = new CitationModel();
// populate model
return PartialView(model);
}
Run Code Online (Sandbox Code Playgroud)
您的视图将保持不变,并将注入每个布局的侧边栏div.
| 归档时间: |
|
| 查看次数: |
893 次 |
| 最近记录: |