如何使用共享视图,但有按钮出现在一边,而不是另一边

本文关键字:在一边 另一边 按钮 共享 何使用 视图 | 更新日期: 2023-09-27 18:13:30

所以我有一个视图创建和完成。但我将创建另一个非常相似的视图(实际上使用相同的屏幕),但有一些不同。你可以看到它是一个"管理"屏幕,在那里有一些粗糙的功能,比如为我的数据库在记录中创建一个新项目,编辑或删除记录。

是否有一种方式,某些按钮或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>

其中"Index"是Views文件夹中我的Recipe Folder中已经完成的视图的名称。

如果这真的不可能或没有意义,最好和合乎逻辑的方法是为"管理"部分创建另一个控制器和模型吗?

如何使用共享视图,但有按钮出现在一边,而不是另一边

在我们的应用程序中,当我们想将同一个视图用于不同的目的时,我们通过该页的ViewModel中的某些属性来控制共享视图中不同的元素。

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

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

因此我们只需根据规则在同一个控制器动作或某个处理器方法中设置这个属性。