2015-04-23 114 views
0

我们如何确定在视图(.cshtml文件)内部呈现视图的模式?如何在Asp.Net MVC中确定剃须刀视图中的“IsPartial”?

其实,在一个视图,例如Delete.cshtml,我已经叫Details.cshtml为:

@Html.Partial("Details.cshtml",model) 

Details.cshtml观点里面,我要确定渲染类型(全部/部分),以使一些工作的决定。

有没有IsPartial属性或类似的东西?

+1

我不认为有是知道视图的机制是你做了什么,但为什么不属性到视图模型添加到效果 – 3dd

+0

简单使用两种观点:以全画面之一,而第二部分 – Grundy

+0

将视图渲染为全视图(即,返回视图(“MyView”);或者@ @ Html.Partial(“MyView”))并不是一种常态。你最好用完全的知识来制作一个局部视图,它永远不会被用作全视图。你只是让自己变得更难。 –

回答

0

什么你正在努力实现是不可能直接从Html.Partial但它是可能的,如果你去到该视图使用动作和使用Html.Action渲染。

说你想通过富为模型,使其第一

public class Foo 
{ 
    public string Name { get; set; } 
    public int Age { get; set; } 
} 

然后创建一个动作

public ActionResult Details(Foo _foo) 
{ 
    return PartialView(_foo); 
} 

这样称呼它

@Html.RenderAction("FooBar", "Controller", new { Name = "John", Age=20 }); 

现在,通过这样做,你可以确定天气这个动作是否被另一个动作调用

if (ControllerContext.IsChildAction) 
      return PartialView(_foo); 
相关问题