You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core Web应用手册开发咨询:MVC/Razor选型及代码参考需求

框架选择建议

推荐使用ASP.NET Core Razor Pages,原因如下:

  • 入门门槛低,文件与页面逻辑一一绑定,无需理解MVC的控制器、路由分层概念,适配你当前的知识储备
  • 开发效率高,内置页面模型(PageModel)处理业务逻辑,能快速完成展示页面和管理面板的基础功能
  • 完全兼容ASP.NET Core全特性,后续扩展功能无限制
基础代码示例

1. 创建Razor Pages项目

打开终端执行命令:

dotnet new webapp -n ManualSite
cd ManualSite

2. 定义手册内容模型

在项目根目录创建Models文件夹,添加ManualContent.cs文件:

public class ManualContent
{
    public int Id { get; set; }
    public string Title { get; set; } = string.Empty;
    public string Content { get; set; } = string.Empty;
    public DateTime CreatedAt { get; set; } = DateTime.Now;
}

3. 配置简易数据存储(用于快速演示,生产环境可替换为数据库)

创建Data文件夹,添加ManualContext.cs文件:

public class ManualContext
{
    public List<ManualContent> Contents { get; set; } = new List<ManualContent>();
}

在Program.cs中注册服务:

builder.Services.AddSingleton<ManualContext>();

4. 搭建管理面板页面

内容列表页(Pages/Admin/Index.cshtml)

@page "/admin"
@model ManualSite.Pages.Admin.IndexModel
@inject ManualContext Context

<h1>手册内容管理</h1>
<a asp-page="./Create">添加新内容</a>
<table>
    <thead>
        <tr>
            <th>标题</th>
            <th>创建时间</th>
            <th>操作</th>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Context.Contents)
        {
            <tr>
                <td>@item.Title</td>
                <td>@item.CreatedAt.ToString("yyyy-MM-dd")</td>
                <td>
                    <a asp-page="./Edit" asp-route-id="@item.Id">编辑</a> |
                    <a asp-page="./Delete" asp-route-id="@item.Id">删除</a>
                </td>
            </tr>
        }
    </tbody>
</table>

对应的页面逻辑文件(Index.cshtml.cs):

public class IndexModel : PageModel
{
    private readonly ManualContext _context;

    public IndexModel(ManualContext context)
    {
        _context = context;
    }

    public void OnGet()
    {
        // 加载内容列表
    }
}

添加内容页(Pages/Admin/Create.cshtml)

@page "/admin/create"
@model ManualSite.Pages.Admin.CreateModel
@inject ManualContext Context

<h1>添加手册内容</h1>
<form method="post">
    <div>
        <label>标题:</label>
        <input asp-for="Content.Title" />
    </div>
    <div>
        <label>内容:</label>
        <textarea asp-for="Content.Content" rows="10"></textarea>
    </div>
    <button type="submit">保存</button>
    <a asp-page="./Index">返回</a>
</form>

对应的页面逻辑文件(Create.cshtml.cs):

public class CreateModel : PageModel
{
    private readonly ManualContext _context;

    public CreateModel(ManualContext context)
    {
        _context = context;
    }

    [BindProperty]
    public ManualContent Content { get; set; } = new();

    public void OnGet()
    {
    }

    public IActionResult OnPost()
    {
        if (!ModelState.IsValid)
        {
            return Page();
        }
        Content.Id = _context.Contents.Count + 1;
        _context.Contents.Add(Content);
        return RedirectToPage("./Index");
    }
}

5. 样式适配参考(匹配你提供的样式图)

在wwwroot/css/site.css中添加以下样式,实现顶部导航、左侧目录+右侧内容的两栏布局,以及管理面板的卡片式风格:

/* 顶部导航栏 */
.navbar {
    background-color: #2c3e50;
    color: #fff;
    padding: 1rem;
}
.navbar a {
    color: #fff;
    margin-right: 1.5rem;
    text-decoration: none;
}

/* 内容区域两栏布局 */
.content-container {
    display: flex;
    margin: 2rem;
}
.sidebar {
    width: 20%;
    padding-right: 2rem;
    border-right: 1px solid #eee;
}
.main-content {
    width: 80%;
    padding-left: 2rem;
}

/* 管理面板表单样式 */
form div {
    margin-bottom: 1rem;
}
input, textarea {
    width: 100%;
    padding: 0.5rem;
    border: 1px solid #ddd;
    border-radius: 4px;
}
button {
    background-color: #3498db;
    color: #fff;
    border: none;
    padding: 0.5rem 1rem;
    border-radius: 4px;
    cursor: pointer;
}

内容的提问来源于stack exchange,提问作者RyuKazeko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 07:47:49