首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >asp.net核心数据库位置和消息传递

asp.net核心数据库位置和消息传递
EN

Stack Overflow用户
提问于 2017-01-27 14:56:00
回答 3查看 1.6K关注 0票数 0

我正在学习asp.net核心1.0.1,我已经成功地连接到了一个SQLite数据库。连接字符串保存在appsettings.json中。我把同一个数据库放在bin文件夹中,一个放在netcoreapp1.0中。

我可以创建一个新的记录,它会被保存。我使用火狐中的SQLite管理器检查了两个数据库,以确定使用的是哪个数据库,但这两个数据库都没有保存的数据。

  1. 那么,我正在处理的数据库保存在哪里呢?
  2. 我尝试使用某种messageBox来显示连接字符串路径,但是asp.net核心中没有消息框。如何在asp.net核心中显示消息? // appsettings.json "ConnectionStrings":{ "MyDatabase":"Data Source=MyDb.sqlite“}
EN

回答 3

Stack Overflow用户

发布于 2017-01-27 17:18:27

下面是如何将连接字符串从appsettings.json输出到视图中的方法。

首先,这是如何在appsettings.json中定义连接字符串的。

代码语言:javascript
复制
"database": {
"connection": "Data Source=.;Initial Catalog=OdeToFood;Integrated  Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"

}

创建一个类来存储连接字符串

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace CoreTest
{
    public class AppSettings
    {
        public string connection { get; set; }
    }
}

更新startup.cs文件

确保构造函数正在读取appsettings.json文件

代码语言:javascript
复制
public Startup(IHostingEnvironment env)
    {
        var builder = new ConfigurationBuilder()
            .SetBasePath(env.ContentRootPath)
            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
            .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
            .AddEnvironmentVariables();
        Configuration = builder.Build();
    }

将这些行添加到ConfigureServices

代码语言:javascript
复制
 services.AddOptions();
 services.Configure<AppSettings>(Configuration.GetSection("database"));

更新控制器

代码语言:javascript
复制
 public class HomeController : Controller
{
    private AppSettings _AppSettings;

    public HomeController(IOptions<AppSettings> settings)
    {
        _AppSettings = settings.Value;
    }

添加控制器方法

代码语言:javascript
复制
 public async Task ContentAction()
    {
        var constr = _AppSettings.connection;
        var jsonString = "{\"connectionString\""+ constr + "}";
        byte[] data = Encoding.UTF8.GetBytes(jsonString);
        Response.ContentType = "application/json";
        await Response.Body.WriteAsync(data, 0, data.Length);
    }

从视图中调用控制器方法

代码语言:javascript
复制
 <div>
    <a asp-controller="Home" asp-action="ContentAction" class="btn btn-  success confirmCreate">
        Generate Response
        <i class="fa fa-angle-left"></i>
    </a>
</div>

输出连接字符串

代码语言:javascript
复制
{"connectionString"Data Source=.;Initial Catalog=OdeToFood;Integrated     Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False}
票数 1
EN

Stack Overflow用户

发布于 2017-01-27 15:10:45

如果您只需要向响应体快速输出一些内容,您可以在控制器上添加如下方法.

代码语言:javascript
复制
public async Task ContentAction()
{
    var jsonString = "{\"test\":1,\"output\":false}";
    byte[] data = Encoding.UTF8.GetBytes(jsonString);
    Response.ContentType = "application/json";
    await Response.Body.WriteAsync(data, 0, data.Length);
}

然后,您可以像这样从视图中调用此控制器方法..。

代码语言:javascript
复制
<div>
    <a asp-controller="Home" asp-action="ContentAction" class="btn btn-success confirmCreate">
        Generate Response
        <i class="fa fa-angle-left"></i>
    </a>
</div>

这将输出像这样的值。

代码语言:javascript
复制
{"test":1,"value":false}
票数 0
EN

Stack Overflow用户

发布于 2017-01-27 16:45:41

最后,数据库实际上保存在bin\Debug\netcoreapp1.0中。(我找错了文件夹)。

但是我仍然不知道如何在asp.net内核中显示一个简单的消息!

我正在学习asp.net核心+其他东西,只是为了创建一个asp.net数据库驱动的网站,但这并不容易。简单的事情很难实现。

使用wpf,c# + mvvm是很棒的,我希望我可以用它们来进行web开发。但是嘿,我们生活和学习。:-)

谢谢。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41896821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档