如何在asp.net核心和javascript中使用API
我正在使用ASP.NET核心、实体框架核心WaveSurferJSAPI开发一个web应用程序 我成功地创建了我的应用程序的CRUD,它工作得很好, 但是在我的主页索引视图中,我使用了一个带有javascript的API来使用这个API的功能,正如它所说的,我必须在我的web应用程序中编写一个javascript代码,以使其按如下方式运行:如何在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
@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);
}