【问题标题】:how passing ng-bind values in to a variable at asp.net core view?如何将 ng-bind 值传递给 asp.net 核心视图中的变量?
【发布时间】:2021-04-30 01:40:24
【问题描述】:

我有一个这样的标签: <a data-ng-click="showform(@item.CategoryId)">

我在剃须刀中有一个变量“catid”... @{int catid; }

我想在 'catid' 中保存值

这是我的 js 代码:

app.controller('结果', function ($scope) { $scope.CatId = 0; $scope.showform = 函数 (id) { $scope.CatId = id; } });

【问题讨论】:

  • 您不能使用客户端 js 代码设置服务器端变量。您能否详细说明实际场景/要求?
  • 我想使用 CatId 作为 linq 代码并在视图中显示类别名称
  • 为什么不从angularjs客户端请求以CatId为参数的后端操作并使用linq查询数据,然后根据angularjs客户端接收到的数据更新UI中的类别名称?

标签: javascript angularjs asp.net-mvc asp.net-core ng-bind-html


【解决方案1】:

也许你可以用这种方式。

<input type="hidden" name="catid" id="catid" value="{{Catid}}" />

当您提交表单时,此值会传递给 asp.net 核心。

【讨论】:

    【解决方案2】:

    我想将 CatId 用于 linq 代码并在视图中显示类别名称

    你能给我一个示例代码吗?

    以下是一个工作示例,您可以参考。

    <div ng-app="myApp" ng-controller="Result">
        @foreach (var item in Model)
        {
        <a data-ng-click="showform(@item.CategoryId)">CategoryId is @item.CategoryId</a>
            <br />
        }
        <h2>Name of selected Category is {{CatName}}</h2>
    </div>
    

    使用 AngularJS $http 服务发出请求

    <script>
        var app = angular.module('myApp', []);
        app.controller('Result', function ($scope, $http) {
            $scope.CatId = 0;
            $scope.CatName = "";
    
            $scope.showform = function (id) {
                $scope.CatId = id;
    
                $http.get("/GetCategoryNameById?catid=" + id)
                    .then(function (response) {
                        $scope.CatName = response.data;
                        //your code logic here based on your actual requirement
                    });
            }
        });
    </script>
    

    我的 GetCategoryNameById 用于测试目的的操作方法

    [HttpGet("GetCategoryNameById")]
    public IActionResult GetCategoryNameById(int catid)
    {
        //your code logic here
    
        //query data based on received catid
    
        var category = _dbcontext.Categories.Where(c => c.CategoryId == catid).FirstOrDefault();
    
        return Ok($"{category.CategoryName}");
    }
    

    测试结果

    【讨论】:

    • 谢谢兄弟如果我想发送两个不同的值作为回报怎么办? return Ok($"{category}",$"{field}");
    • field 是数据列表
    • 您可以为类别和字段等定义具有预期属性的视图模型类,然后将其返回给客户端应用程序。
    • 好的,我不知道如何在这段代码中获取模型? ` $http.get("/GetCategoryNameById?catid=" + id) .then(function (response) { $scope.Fields = response.data; }); `
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    • 2011-04-28
    • 2020-10-17
    相关资源
    最近更新 更多