Javascript与C#混合使用-无法使用变量

本文关键字:变量 混合 Javascript | 更新日期: 2023-09-27 18:27:09

我有一个JS函数,我想循环使用从控制器传递的c#对象。然后,我想将它与HTML输入值进行比较——我已经将其作为字符串传递到JS函数中。函数的调用类似

searchReleases($("[name=release]").val());

function searchReleases(givenName) {
    var list;
    var data = givenName;
    @foreach (var a in @Model.Releases) {
        if (@a.Name.Contains(givenName)) {
           list+= a.Name + "=";
        }
    }
}

但是,我无法访问IF语句中的JS变量givenName。我花了一段时间试图在谷歌上找到答案,但还没有找到可行的解决方案。

Javascript与C#混合使用-无法使用变量

您应该明白C#是一个服务器端代码,JS是在客户端执行的。因此,如果您在ASP.MVC中生成视图,那么您只能访问C#数据。所有要打印在页面上的信息都将静态生成为HTML文件。然后,您可以将这个HTML页面传递给浏览器,并在其中执行JS代码。但仅基于静态生成的数据或JS变量。

你不能从C#中读取JS,但你可以从JS中读取C#。因此,如果它是只读操作,那么将C#对象转换为JSON并从JS代码访问它。

试试这个答案:Asp.netmvc将一个C#对象传递给Javascript