.NET SAAS 应用程序是否允许用户从应用更新其 CSHTML
本文关键字:应用 更新 CSHTML 用户 应用程序 SAAS 是否 许用户 NET | 更新日期: 2023-09-27 18:36:30
因此,有一些服务,如Shopify,Wordpress和许多其他服务允许用户在浏览器中从应用程序本身更新其布局,但其中许多不是像.NET框架那样用编译语言编写的。
从 .NET MVC 站点可以做这种事情吗?我是否可以允许用户修改其.cshtml
文件,只要他们遵守Razor
约定?
对于编译语言来说,这有缺点吗?
当然可以。如果您熟悉 .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是如何工作的,以及如何很好地做到这一点。但是,我认为,这是一个很好的起点。
我希望这能有所帮助。