簡體   English   中英

.NET SAAS應用程序可以允許用戶從該應用程序更新其CSHTML嗎?

[英]Can a .NET SAAS application allow users to update their CSHTML from the app?

因此,有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的工作原理以及如何做得很好。 但是,我認為這是一個很好的起點。

希望對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM