我需要添加一个具有特定名称的部分,如下所示:
@string test="test";
@section @test
{
@* my view code *@
}
我怎么能得到这项工作。
答案 0 :(得分:1)
您可以使用DefineSection
方法。看看这个如何有用的示例:http://blogs.msdn.com/b/marcinon/archive/2010/12/15/razor-nested-layouts-and-redefined-sections.aspx
答案 1 :(得分:0)
您可以在任何地方使用可以使用Html.Partial
助手包含的部分:
@Html.Partial("test")
将呈现Test.cshtml
部分视图,其中可能包含您喜欢的任何标记。
如果您想处理一些更复杂的场景,其中此部分将包含来自某些数据存储的动态数据,您可以使用Html.Action帮助程序。您可以从定义模型开始:
public class MyModel
{
public string SomeProperty { get; set; }
}
然后是控制器:
public class MySectionController: Controller
{
public ActionResult Index()
{
MyModel model = ...
return View(model);
}
}
并有相应的观点:
@model AppName.Models.MyModel
<div>@Model.SomeProperty</div>
最后你会像这样包括它:
@Html.Action("index", "mysection")
您可以将其包含在布局中,从而允许您将动态小部件与主控制器逻辑完全分离,并且每个动态小部件都遵循其自然工作流程。