2017-01-20 79 views
0

當我在控制器中添加一個新的ActionResult這樣
鑑於剃鬚刀文件,我如何區分它是一個視圖還是一個局部視圖?

public ActionResult Step8(AddPropertyStep7ViewModel model) 
     { 
      return View(); 
     } 

我需要指定我想回到什麼樣的看法。{查看與佈局,景觀,部分景觀}
我知道,我想返回如下所示的文件
這是Step1.cshtml。我如何確定它是某種觀點還是局部觀點?

@using W.Resources 
@model W.Models.ViewModels.Agent.AddPropertyStep1ViewModel 

@{ 
    Layout = "~/Areas/Agent/Views/Shared/_Layout.cshtml"; 
} 
<div class="side site--dashboard"> ... <div> 

@section scripts 
{ 
    <script> ... </script> 
} 
+2

你爲什麼想這樣做?有可能是另一種解決方案 – Shyju

+0

感謝。我編輯了問題並提到了原因。 –

+0

當你調用'Partial'輔助方法時,它將不包含佈局。你看到不同的行爲? – Shyju

回答

1

基本方式來定義局部視圖是其具有排布= NULL。

即使你有你的Layout屬性值,並返回視圖就像從控制器以下。

return PartialView("Your_view_name"); 

它仍然會得到呈現爲一個局部視圖(它不會包裹在主頁內容)。

由於MVC在配置工作由公約,該公約定義局部視圖,視圖名稱應當以啓動「_」 (_MyPartialView.cshtml)

正如你在編輯的問題中提到你需要指定哪一種看法你想要返回。我沒有看到需要的地方,只需要返回佈局,沒有別的。我上面提出的解決方案要麼從您的操作方法中使用return View()return PartialView()將完美工作,您可以決定是否要使用母版頁或部分視圖呈現頁面。

1

意見意見是意見。術語「佈局」和「部分」只是讓人們更容易討論如何使用視圖,但它們之間沒有功能差異。換句話說,佈局是用作佈局的視圖。部分僅僅是用作部分的視圖。沒有辦法只看一個視圖,並且知道它是什麼類型的視圖,因爲它完全是上下文的。

儘管如此,佈局是一種例外的,因爲這樣才能真正功能佈局,他們需要@RenderBody()在某處調用。但是,您仍然可以使用未將其視爲另一視圖的「佈局」的視圖。它只是不會實際呈現視圖的HTML:所有將返回的是佈局的HTML。

有一個帶有下劃線的前綴佈局/部分的約定。但是,這只是在項目樹中快速查看視圖文件的特殊之處。這不是必需的,並且沒有真正給你任何有關視圖的特別信息。

這就是說,你的問題在這裏不是很清楚。你說你想要指定什麼類型的視圖返回,大概來自你的行動。那麼,你已經這樣做了,實際上。當您返回View(),你說你想要的視圖像一個標準的觀點來處理。如果你想返回一個部分,你將不得不返回PartialView()。但是,無法指定返回的視圖必須使用佈局。

相關問題