如何编辑或是否可以编辑数据库中的视图并根据条件将其替换为自定义标签或文本框?

时间:2016-04-27 08:05:31

标签: asp.net asp.net-mvc virtualpathprovider

我一直关注this文章,用于从数据库呈现视图,然后使用VirtualPathProvider类来注册路由。

我的主要要求是,我希望根据条件渲染相同的视图,以便在编辑模式下打开一次,在只读模式下打开一次。

现在我试图实现这一点,因为我不想更改视图两次(一次用于编辑,一次用于readonly)如果我必须更改页面,则意味着添加新的 文本框 编辑模式)或 标签 readonly 模式)然后它意味着实际管理当应用程序扩展并变得更加复杂时,两个或更多视图。

将数据库中的视图保存为字符串是我在互联网上找到的选项,但是无法在c#中操作字符串以添加 文本框 标签 动态。

所以有可能实现这种行为,我知道我们很多人不想管理多个视图,如果我们在文件系统中添加视图作为文件,我们也会有超过拥挤的解决方案文件夹。

欢迎任何形式的意见(帮助批评)。

修改 使用If Else代码块将导致管理多个html的相同效果

编辑2

代码?,我只想知道实现,而不是在DB表中保存硬编码的视图,我希望能够根据条件更改视图。

所以我的要求不仅是为数据库提供视图服务,而且能够根据需要更改视图,因此使其非常动态。

我正在为此提供一个小实现。没有VirtualPathProvider

让我们保持简单,我使用EF查询数据库并将Model传递给View

所以在Controller我正在使用以下查询。

public ActionResult DynamicView(int id)
{
var abc= db.DummyTable.Where(c => c.ID == id).ToList();
return View(abc);
}

然后在View

@model IEnumerable<Project.Models.DummyTable>

@foreach (var item in Model)
{
<tr>
<td>
<label>@item.Name</label>
</td>
<td>
<label>@item.Class</label>
</td>
<td>                                              
<label>@item.RollNumber</label>
</td>
</tr>
}

所以相反在表中保存我的整个视图,我希望视图能够在编辑模式中进行更改,就像我想要 Textboxes 而不是 标签

谢谢

0 个答案:

没有答案