Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.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
在c中使用javascript变量#_Javascript_C#_Asp.net Mvc - Fatal编程技术网

在c中使用javascript变量#

在c中使用javascript变量#,javascript,c#,asp.net-mvc,Javascript,C#,Asp.net Mvc,可以在c#代码中使用js变量吗 这是我的模型: public class Department { public int Id { get; set; } public string Name { get; set; } public int? ParentId { get; set; } public virtual ICollection<Department> Parent { get; set; } } 有没有办法做到这一点,或者我一定要使用

可以在c#代码中使用js变量吗

这是我的模型:

public class Department
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int? ParentId { get; set; }
    public virtual ICollection<Department> Parent { get; set; }
}

有没有办法做到这一点,或者我一定要使用ajax?

没有,因为javascript代码用于客户端和服务器端的razor

您有两种解决方案:

1-将所有部门放在
列表(
中,并使用JQuery获取变更数据


2-使用jquery ajax并直接从控制器获取数据(为此创建控制器)

考虑到在服务页面时,C#在服务器上运行,而在C#完全执行后,JavaScript在客户端上运行-根本不可能以这种方式混合使用它们。您需要研究动态加载数据,例如使用ajax请求。您混淆了客户端和服务器端代码。它们在完全不同的时间和环境中运行。您需要将所有项目发送到页面并在JavaScript代码中有条件地对其进行操作,或者从JavaScript代码发出AJAX请求以在页面加载后获取所需的项目。
@model List<inspinia.models.Department>
<select name="DepartmentId" class="form-control" id="Department">
    @foreach (var item in Model)
    {
       <option value="@item.Id">@item.Name</option>
    }
</select>
<script>
  $(document).ready(function () {
    $("#Department").on("change", function () {
      var DepartmentId = $('option:selected', this).attr('value');
      //the problem in the next line. 
      @foreach(var item in Model.Where(x=>x.ParentId==@:DepartmentId))
        {
            @:alert(@item.id)
        }
    });
  });
</script>
Model.Where(x=>x.ParentId==@:JAVASCRIPT VARIABLE).