【问题标题】:Call a C# Method (output string) in ASP.NET for html src statement在 ASP.NET 中为 html src 语句调用 C# 方法(输出字符串)
【发布时间】:2016-09-29 08:04:33
【问题描述】:

我创建了一些 C# 方法,我想将其用作我的 ASP.NET 项目的参考。

该方法给了我一个字符串作为输出。一个字符串的例子: "C:/tracks/audio1.mp3"

现在我尝试将我的方法“GetTrackPath()”用于我的 html 音频标签。 简单 -> 我想要方法输出在我的

如何实现?

添加代码

<audio id="a1" preload="auto" controls>
   <source src="GetTrackPath()">
<audio>

现在我想将字符串放入 html src 标签中。

【问题讨论】:

  • 不太明白是什么问题,能否提供一些代码并完善解释?
  • 你需要看看创建你自己的HTML Helper
  • @JackMorton 我希望它现在更合乎逻辑。
  • 是 Asp.Net MVC 还是 Webforms ?
  • @Fabjan 是 ASP.NET MVC

标签: javascript c# html asp.net razor


【解决方案1】:

您可以创建一个视图模型并在 View 中使用它:

namespace MyProject.MyNameSpace

public class AudioTrackVM
{
   public string Id { get; set; }
   public string Preload { get; set; }
   public string Src { get; set; }
}

在控制器中你可以添加这个:

public ActionResult Index()
{
   var model = new List<AudioTrackVM>()  // this is stub, get data from data source instead
   {
      new AudioTrackVM() { Id = "a1", Preload = "auto", Src = @"C:/tracks/audio1.mp3" },
      new AudioTrackVM() { Id = "a2", Preload = "auto", Src = @"C:/tracks/audio2.mp3" }
   };
   return View(model);
}

现在是时候使用这个 Viewmodel 了:

@model List<MyProject.MyNameSpace.AudioTrackVM>

@foreach(var audio in Model)
{
   <audio id="@audio.Id" preload="@audio.Preload" controls>
      <source src="@audio.Src">
   <audio>
}

【讨论】:

    【解决方案2】:

    你可以使用代码标签

    把这个写在你的aspx中

    <audio id="a1" preload="auto" controls>
       <source src="GetTrackPath()">
    <audio>
    

    在你的 aspx.cs 中写下这个方法

    public string GetTrackPath()
    {
        return @"C:/tracks/audio1.mp3";
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-08
      • 2015-06-11
      • 2015-04-26
      • 2012-09-07
      • 2014-01-01
      • 1970-01-01
      • 2014-08-13
      • 1970-01-01
      相关资源
      最近更新 更多