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

如何在C# WebService中用Razor页面替代JSON展示数据?

嘿,我来帮你搞定这个转换!要把返回JSON的接口改成展示Razor页面,其实只需要几个简单的步骤,我一步步给你拆解:

步骤1:创建对应的Razor视图

首先你需要在项目的Views文件夹下,新建一个和控制器同名的子文件夹(比如你的控制器是BooksController,就建Views/Books),然后在里面创建一个视图文件。

  • 如果想让方法名和视图名对应,就创建Get.cshtml;
  • 要是遵循ASP.NET MVC的约定,建议把方法名改成Index,然后创建Index.cshtml(这样访问路径更简洁,直接/Books就能打开)。

下面是一个基础的视图示例,假设你的书籍实体类叫Book,包含Title和Author字段:

@model IEnumerable<YourNamespace.Models.Book> <!-- 替换成你实际的实体类命名空间 -->

<h1>书籍搜索结果</h1>

<!-- 搜索表单(可选,方便用户输入name参数) -->
<form asp-action="Get" method="get">
    <input type="text" name="name" placeholder="输入书名关键词" value="@ViewContext.HttpContext.Request.Query["name"]" />
    <button type="submit" class="btn btn-primary">搜索</button>
</form>

<hr />

@if (!Model.Any())
{
    <div class="alert alert-info">没有找到匹配的书籍</div>
}
else
{
    <table class="table table-striped">
        <thead>
            <tr>
                <th>书名</th>
                <th>作者</th>
                <!-- 这里可以添加其他你需要展示的字段 -->
            </tr>
        </thead>
        <tbody>
            @foreach (var book in Model)
            {
                <tr>
                    <td>@book.Title</td>
                    <td>@book.Author</td>
                </tr>
            }
        </tbody>
    </table>
}

步骤2:修改控制器的Get方法

把原来返回Json(books)的逻辑,改成返回View(books),这样就会把书籍数据传递给上面创建的Razor视图,渲染成HTML页面。修改后的代码如下:

[HttpGet]
public async Task<IActionResult> Get(string name)
{
    var books = await _booksService.BrowseAsync(name);
    return View(books); // 替换原来的Json(books),返回视图并传递数据模型
}

几个额外的小提示

  • 如果原来的JSON接口还要给其他前端调用,别直接改这个方法!可以新增一个专门的API接口,比如:
    [HttpGet("api/books")]
    public async Task<IActionResult> GetBooksApi(string name)
    {
        var books = await _booksService.BrowseAsync(name);
        return Json(books);
    }
    
    这样既保留了JSON接口,又能通过/Books/Get访问Razor页面。
  • 确保视图里的实体类命名空间正确,如果视图找不到Book类,可以在视图顶部加@using YourNamespace.Models(替换成你的命名空间)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:26:15