Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在asp.net核心和javascript中使用API_Api_Asp.net Core_Asp.net Core Mvc_Entity Framework Core_Wavesurfer.js - Fatal编程技术网

如何在asp.net核心和javascript中使用API

如何在asp.net核心和javascript中使用API,api,asp.net-core,asp.net-core-mvc,entity-framework-core,wavesurfer.js,Api,Asp.net Core,Asp.net Core Mvc,Entity Framework Core,Wavesurfer.js,我正在使用ASP.NET核心、实体框架核心WaveSurferJSAPI开发一个web应用程序 我成功地创建了我的应用程序的CRUD,它工作得很好, 但是在我的主页索引视图中,我使用了一个带有javascript的API来使用这个API的功能,正如它所说的,我必须在我的web应用程序中编写一个javascript代码,以使其按如下方式运行: @section Scripts { <script type="text/javascript"> var path = '@Mode

我正在使用ASP.NET核心、实体框架核心WaveSurferJSAPI开发一个web应用程序

我成功地创建了我的应用程序的CRUD,它工作得很好, 但是在我的主页索引视图中,我使用了一个带有javascript的API来使用这个API的功能,正如它所说的,我必须在我的web应用程序中编写一个javascript代码,以使其按如下方式运行:

@section Scripts {
<script type="text/javascript">
    var path = '@Model.MusicList';
    console.log(path);
        var wavesurfer = WaveSurfer.create({
            container: '#waveform',
            waveColor: 'violet',
            progressColor: 'purple'
        });
            wavesurfer.load(path);
            wavesurfer.on('ready', function () {
            wavesurfer.play();
        });
</script>
}
控制器:

private readonly IHostingEnvironment _hostingEnvironment;
    public HomeController(IHostingEnvironment hostingEnvironment)
    {
        _hostingEnvironment = hostingEnvironment;
    }
    public IActionResult Index()
    {
        string path = Path.Combine(_hostingEnvironment.WebRootPath, "music");
        var model = new HomeViewModel()
        {
            MusicList = path
        };

        return View(model);
    }
为了使API正常工作,我需要通过在.load()函数中传递其路径来加载存储在wwwroot目录的music文件夹中的.mp3文件。 但路径似乎没有正确传递,如下所示:

请问我怎样才能解决这个问题?
有更好的方法吗?

\u hostingEnvironment.WebRootPath
提供了一个绝对文件路径,但似乎相对URL适合您的目的。使用
string path=Url.Content(“~/music/file.mp3”)
或类似工具进行尝试。要达到您的要求,1)在控制器操作中,请使用类似以下内容设置
MusicList
,例如
var model=new HomeViewModel{MusicList=“~/music/file.mp3”)2)如@KirkLarkin所述,在您的查看页面中,请使用
var path='@Url.Content(Model.MusicList)'
private readonly IHostingEnvironment _hostingEnvironment;
    public HomeController(IHostingEnvironment hostingEnvironment)
    {
        _hostingEnvironment = hostingEnvironment;
    }
    public IActionResult Index()
    {
        string path = Path.Combine(_hostingEnvironment.WebRootPath, "music");
        var model = new HomeViewModel()
        {
            MusicList = path
        };

        return View(model);
    }