2015-09-18 79 views
0

所以我創建並完成了一個視圖。 但是我將創建另一個非常相似的視圖(實際上實際上使用相同的屏幕),但有一些區別。您可以將其視爲「管理」屏幕,其中存在殘留功能,例如在數據庫的記錄中創建新項目,編輯或刪除記錄。如何使用共享視圖,但在一側顯示按鈕但不顯示其他按鈕?

有沒有一種方法,某些按鈕或html標籤可以出現在一個區域而不是另一個區域?在當前的「共享」屏幕中,我使用數據表顯示表以及使用stringBuilder在我的.cs文件中構建html標記。 但我如何創建按鈕,如編輯和刪除使用標籤。如何調用這個函數是通過javascript函數和調用我的方法的ajax調用來在字符串生成器中生成html標記。

var htmlTable = new StringBuilder(); 
htmlTable.Append{<table><Tr><td><img src='/images/Edit.png'>... 

我也有單獨的按鈕,是不是在HTML生成器內嵌標籤。

<input type="button" id="btnAddRecipeLink" value="New Link" data-toggle="modal" data-target="#myModal" /> 

也是我_layout.cshtml文件我也有使用左鍵單擊該鏈接以查看「管理部分」

<ul class="dropdown-menu" role="menu"> 
<li> 
    @Html.ActionLink("Recipe Management", "Index", "Recipe") 
</li> 
</ul> 

當「指數」是已經完成的視圖名稱在我的食譜文件夾中的視圖文件夾。

如果這不是真的可行或沒有意義,最好的和合乎邏輯的方法是爲「管理」部分創建另一個控制器和模型?

回答

0

在我們的應用程序中,當我們想爲不同的目的使用相同的視圖時,我們通過該頁面的ViewModel中的某個屬性來控制sharedview中不同的元素。

例如,我們有一個屬性IsAdministrator在視圖模型和管理的情況下,它被設置爲true,在我們去像剃刀觀點:

@{ 
if(Model.IsAdministrator) 
{ 
    @: <a href='edit'>Admin can edit</a> 
} 
else 
{ 
    @: <span>You are not an admin!</span> 
} 
} 

所以我們只設置該屬性在同一個控制器動作或一些基於規則的處理器方法...

相關問題