需要使用angularjs向mvc控制器发送一个隐藏的输入值

本文关键字:一个 隐藏 输入 angularjs 控制器 mvc | 更新日期: 2023-09-27 18:26:43

我有一个隐藏的输入字段,其中包含一个发送mvc控制器所需的值。

$http({ method: 'GET', url: '/User/GetProjectsList' })
.success(function (data, status, headers, config) {         
    $scope.workflow = [];
    $scope.Projects = data;
})
.error(function (data, status, headers, config) {
    alert('error');
});

隐藏字段是:

<input type="hidden" ng-model='ProjectId' value="{{ProjectsObj.IDWorkflow}}"></input>

我如何将值发送到我的控制器,以及如何在控制器中获取它?这是我在MVC控制器上使用的方法。

[HttpPost]
public JsonResult GetProjectsList()
{
    return Json();
}

需要使用angularjs向mvc控制器发送一个隐藏的输入值

您尝试过使用查询字符串吗?

var pID=$scope.ProjectId
$http({ method: 'GET', url: '/User/GetProjectsList?ProjectID='+pID}).
    success(function (data, status, headers, config) {         
        $scope.workflow = [];
        $scope.Projects = data;
    }).
 error(function (data, status, headers, config) {
     alert('error');
 })

我希望这对你有所帮助;)

 app.controller("myCtrl", function($scope) {
   $scope.formDetails = {};
   $scope.sendToApi = function(){
       var model = {
          id: $scope.formDetails.id //this is my hidden input
          name: $scope.formDetails.name,
       }
       //and then send your model to API
   }
})

 @Html.HiddenFor(m => m.ProjectId)

您可以简单地将隐藏值从视图传递给控制器通过使用上面的语法模型值。

AngularJS在提交表单时似乎没有考虑隐藏输入,请查看此问题以了解更多详细信息。但你可以通过两种方式获得你的价值:

  1. 经典方式:

删除ng模型,因为如上所述,没有隐藏类型的传感器,并添加id:

<input id="project_id" type="hidden" value="{{ProjectsObj.IDWorkflow}}"/>

在Javascript方面,您只需执行以下操作:

var project_id = document.getElementById('45').value;
  1. AngularJS方式

由于Angular忽略hidden元素,因此可以将其替换为type=textdisplay:none:

<input type="text" name="project_id" ng-model="projectID" style="display: none;"/>

使用双向数据绑定的javascript端可以访问ng模型变量:

var project_id = $scope.projectID;