C# 如何使用共享视图,但使按钮显示在一侧而不是另一侧?

C# 如何使用共享视图,但使按钮显示在一侧而不是另一侧?,c#,sql,entity-framework,razor,model-view-controller,C#,Sql,Entity Framework,Razor,Model View Controller,因此,我创建并完成了一个视图。 但我将创建另一个非常相似的视图(实际上使用相同的屏幕),但有一些不同。您可以将其视为一个“管理”屏幕,其中存在crud功能,例如在“我的数据库”的记录中创建新项目、编辑或删除记录 有没有一种方法可以让某些按钮或html标记出现在一个区域而不是另一个区域?在当前的“共享”屏幕中,我使用datatables显示该表,并使用stringBuilder在我的.cs文件中构建html标记。 但我是如何创建编辑和删除等按钮的,就是使用了标记。这是如何通过javascript函

因此,我创建并完成了一个视图。 但我将创建另一个非常相似的视图(实际上使用相同的屏幕),但有一些不同。您可以将其视为一个“管理”屏幕,其中存在crud功能,例如在“我的数据库”的记录中创建新项目、编辑或删除记录

有没有一种方法可以让某些按钮或html标记出现在一个区域而不是另一个区域?在当前的“共享”屏幕中,我使用datatables显示该表,并使用stringBuilder在我的.cs文件中构建html标记。 但我是如何创建编辑和删除等按钮的,就是使用了标记。这是如何通过javascript函数和ajax调用调用my方法来调用的,my方法在字符串生成器中生成html标记

var htmlTable = new StringBuilder();
htmlTable.Append{<table><Tr><td><img src='/images/Edit.png'>...
var htmlTable=new StringBuilder();
htmlTable.Append{。。。
我还有一个单独的按钮,它不是html生成器中的内联标记

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

此外,在my_layout.cshtml文件中,我还有一个用于单击以查看“管理部分”的链接

  • @ActionLink(“配方管理”、“索引”、“配方”)
其中“索引”是“视图”文件夹中“我的配方”文件夹中已完成的视图的名称


如果这真的不可能或没有意义,那么最好的逻辑方法是为“管理”创建另一个控制器和模型吗节?

在我们的应用程序中,当我们想要为不同的目的使用相同的视图时,我们通过该页面的ViewModel中的某些属性来控制sharedview中不同的元素

例如,我们在ViewModel中有一个属性IsAdministrator,在Admin的情况下,它被设置为true,在razor视图中,我们如下所示:

@{
if(Model.IsAdministrator)
{
   @: <a href='edit'>Admin can edit</a>
}
else
{
   @: <span>You are not an admin!</span>
}
}
@{
if(型号IsAdministrator)
{
@: 
}
其他的
{
@:你不是管理员!
}
}
因此,我们只是在同一个控制器操作或基于规则的某个处理器方法中设置此属性

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