.NET SAAS 应用程序是否允许用户从应用更新其 CSHTML

本文关键字:应用 更新 CSHTML 用户 应用程序 SAAS 是否 许用户 NET | 更新日期: 2023-09-27 18:36:30

因此,有一些服务,如Shopify,Wordpress和许多其他服务允许用户在浏览器中从应用程序本身更新其布局,但其中许多不是像.NET框架那样用编译语言编写的。

从 .NET MVC 站点可以做这种事情吗?我是否可以允许用户修改其.cshtml文件,只要他们遵守Razor约定?

对于编译语言来说,这有缺点吗?

.NET SAAS 应用程序是否允许用户从应用更新其 CSHTML

当然可以。如果您熟悉 .NET Framework 产品,您就会知道使用 asp.net mvc 路由和少量自定义代码,您可以生成自己的控制器来处理用户的请求并管理自定义视图。

例如,您可以将用户视图保存到表中并构建编辑器。之后,您可以编写一个控制器来处理用户的请求并呈现所需的视图。请查看这个非常简短的示例。

您可以创建这样的表,该表将作为物理视图和用户相关视图之间的链接运行。

CREATE TABLE UserPages (
 Id INT NOT NULL IDENTITY(1,1),
 Title NVARCHAR(50) NOT NULL ,
 Html NTEXT NOT NULL);
ALTER TABLE UserPages ADD CONSTRAINT PK_UserPages PRIMARY KEY (Id);

控件将类似于以下内容:

class UserPagesController : Controller {
    [ValidateInput(false)]
    public ActionResult Save(UserPage page) {
        var db = new DbContext(); // Your db context..
        db.Save(userPage);
        var path = string.Format("~/Views/UserPages/Page{1}.cshml", page.Id);
        path = Server.MapPath(path);
        File.WrileAllText(path, page.Html);
        return ...;
    }
    [HttpGet]
    public ActionResult View(int id) {
        var db = new DbContext();
        var page = db.Pages.FirstOrDefault(p => p.Id == id);
        if( page != null) {
            var path = string.Format("~/Views/UserPages/Page{1}.cshml", page.Id);
            return View(path);
        } else {
            return HttpNotFound();
        }
    }   
}

请记住:这只是指导您完成该过程的示例。你必须学习 asp.net mvc是如何工作的,以及如何很好地做到这一点。但是,我认为,这是一个很好的起点。

我希望这能有所帮助。