2017-01-27 2 views
0

Я изучаю asp.net core 1.0.1, и я успешно подключился к базе данных SQLite. Строка подключения сохраняется в appsettings.json. Я поместил одну и ту же базу данных, одну в папку bin и одну в netcoreapp1.0.местоположение базы данных базы данных asp.net

Я могу создать новую запись, и она будет сохранена. Я проверил обе базы данных, используя диспетчер SQLite в Firefox, чтобы узнать, какой из них используется, но нет сохраненных данных для обоих из них.

  1. Так где же база данных, в которой я работаю, сохранена?
  2. Я попытался использовать своего рода MessageBox, чтобы показать путь строки подключения, но в ядре asp.net нет окна сообщений. Как показать сообщения в ядре asp.net?

    // appsettings.json 
    "ConnectionStrings": { 
        "MyDatabase": "Data Source=MyDb.sqlite" 
    } 
    
+0

Вы должны опубликовать соответствующий код. –

+0

Немного улучшенное форматирование –

+0

привет Яз. Когда вы говорите: «Я могу создать новую запись, и она будет спасена». как вы доказали, что запись была сохранена? Вы остановили приложение, перезапустили его, а затем извлекли запись? –

ответ

0

Если вам просто нужно вывести что-то быстрое к телу ответа вы можете добавить метод на контроллере, как это ...

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); 
} 

Вы можете вызвать этот метод контроллера из ваше мнение, как это ...

<div> 
    <a asp-controller="Home" asp-action="ContentAction" class="btn btn-success confirmCreate"> 
     Generate Response 
     <i class="fa fa-angle-left"></i> 
    </a> 
</div> 

Это будет выводить значения, как это ..

{"test":1,"value":false} 
+0

Благодарим вас за ответ. Я пробовал ваш код как есть, и он работает. Но мне нужно показать строку подключения, чтобы я сделал это: string connection = Configuration.GetConnectionString («MyDatabase»); byte [] data = Encoding.UTF8.GetBytes (соединение); Response.ContentType = "application/json"; ожидание Response.Body.WriteAsync (данные, 0, data.Length); но я получаю ArgumentNullException: ссылка на String не установлена ​​в экземпляр String. Имя параметра: s – Yaz

0

В конце концов база данных фактически сохранена в bin \ Debug \ netcoreapp1.0. (Я искал неправильную папку).

Но я до сих пор не знаю, как показать простое сообщение в ядре asp.net!

Я изучаю asp.net core + массу других вещей, чтобы создать веб-сайт, основанный на базе asp.net, но это непросто. простые вещи трудно реализовать.

Использование wpf, C# + mvvm отлично, я бы хотел использовать их вместо этого для веб-разработки. Но мы живем и учимся. :-)

Спасибо.

1

Вот как вы можете выводить строку подключения из вашего appsettings.json в свой вид.

Сначала это как моя строка соединения определяется в appsettings.json

"database": { 
"connection": "Data Source=.;Initial Catalog=OdeToFood;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False" 

}

Создать класс для хранения в строке соединения

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Threading.Tasks; 

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

Update в startup.cs file

Убедитесь, что конструктор читает настройки.JSON файл

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

services.AddOptions(); 
services.Configure<AppSettings>(Configuration.GetSection("database")); 

обновления контроллера

public class HomeController : Controller 
{ 
    private AppSettings _AppSettings; 

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

Добавить метод контроллера

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); 
    } 

Вызовите метод контроллера с вашей точки зрения

<div> 
    <a asp-controller="Home" asp-action="ContentAction" class="btn btn- success confirmCreate"> 
     Generate Response 
     <i class="fa fa-angle-left"></i> 
    </a> 
</div> 

Вывести строку соединения

{"connectionString"Data Source=.;Initial Catalog=OdeToFood;Integrated  Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False} 
+1

Спасибо pforsthoff, я работаю над вашим кодом. Я отправлю обратно, когда закончим. :-) – Yaz

+1

Ваш код отлично работает для задачи. Я узнал от вас совершенно новые вещи. Я очень благодарен за вашу помощь. Всего наилучшего. – Yaz

+0

Яз, не могли бы вы отметить этот ответ как полезный? Фактически оба они, если они были полезны. Спасибо! – pforsthoff

Смежные вопросы